1
00:00:01,080 --> 00:00:04,799
Speaker 1: How'd you like to listen to dot NetRocks with no ads? Easy?

2
00:00:05,360 --> 00:00:08,560
Become a patron for just five dollars a month you

3
00:00:08,599 --> 00:00:11,320
get access to a private RSS feed where all the

4
00:00:11,359 --> 00:00:14,599
shows have no ads. Twenty dollars a month will get

5
00:00:14,599 --> 00:00:18,440
you that and a special dot NetRocks patron mug. Sign

6
00:00:18,519 --> 00:00:22,320
up now at Patreon dot dot NetRocks dot com. Hey,

7
00:00:22,480 --> 00:00:26,239
Carlin Richard here with your twenty twenty four NDC schedule.

8
00:00:26,480 --> 00:00:29,199
Speaker 2: Will be at as many NDC conferences as possible this year,

9
00:00:29,239 --> 00:00:32,240
and you should consider attending no matter what. The Copenhagen

10
00:00:32,240 --> 00:00:35,840
Developers Festival happens August twenty sixth through the thirtieth. Tickets

11
00:00:35,840 --> 00:00:38,759
at Cphdevfest dot com.

12
00:00:39,119 --> 00:00:43,520
Speaker 1: Ndcporto is happening October fourteenth through the eighteenth. The early

13
00:00:43,560 --> 00:00:49,200
bird discount ends June fourteenth. Tickets at Ndcporto dot com.

14
00:00:49,240 --> 00:01:01,399
Speaker 3: And we'll see you there, we hope.

15
00:01:03,759 --> 00:01:06,239
Speaker 1: Hey, guess what it's dot net Rocks. I'm Carl Franklin

16
00:01:06,239 --> 00:01:08,439
and i Amgard Campbell and we're here again. Yes, we

17
00:01:08,519 --> 00:01:11,640
keep doing this. You know people are gonna talk. Yeah,

18
00:01:11,719 --> 00:01:16,239
hopefully that's the whole point. We talk about everything, not

19
00:01:16,359 --> 00:01:19,680
just dot net but We're a podcast for dot net developers.

20
00:01:19,680 --> 00:01:22,000
That's the way we've always been and gotten.

21
00:01:22,040 --> 00:01:24,400
Speaker 2: Developers do a lot of stuff these days, it seems

22
00:01:24,400 --> 00:01:25,159
I think they always have.

23
00:01:25,319 --> 00:01:29,120
Speaker 1: Yeah, I have a little bit of a story of

24
00:01:29,239 --> 00:01:32,359
and a product to talk about for better no framework.

25
00:01:32,400 --> 00:01:41,159
So roll the music, man.

26
00:01:41,200 --> 00:01:41,599
Speaker 2: What do you got?

27
00:01:41,760 --> 00:01:41,920
Speaker 4: Well?

28
00:01:41,920 --> 00:01:44,239
Speaker 1: I gave myself a birthday present this year.

29
00:01:44,680 --> 00:01:45,799
Speaker 2: Happy birthday, Thank you.

30
00:01:45,840 --> 00:01:46,920
Speaker 1: Happy birthday to you too, sir.

31
00:01:47,000 --> 00:01:48,439
Speaker 2: Yeah right, it's about the same time, isn't it.

32
00:01:48,519 --> 00:01:54,239
Speaker 1: Yeah, I got. I replaced the stock in dash stereo

33
00:01:54,359 --> 00:01:59,480
system in my twenty twelve Honda CRV AD it a

34
00:01:59,480 --> 00:02:03,439
long time yeah, yeah, with yeah, but it's a great car.

35
00:02:03,760 --> 00:02:06,640
But I replace it with something new that has Apple

36
00:02:06,719 --> 00:02:10,639
car Play and all that stuff. And I did a

37
00:02:10,639 --> 00:02:13,719
lot of research and I found the best bang for

38
00:02:13,759 --> 00:02:16,879
the buck was about five hundred and forty nine bucks.

39
00:02:16,960 --> 00:02:20,400
I got it at best Buy. It's a Pioneer AVH

40
00:02:20,800 --> 00:02:24,280
twenty five fifty n ex All right, So what is it?

41
00:02:24,680 --> 00:02:24,759
Speaker 5: So?

42
00:02:24,919 --> 00:02:27,879
Speaker 1: It does everything right, but mostly it connects to your

43
00:02:27,919 --> 00:02:31,039
phone and it will either use Android Auto which is

44
00:02:31,080 --> 00:02:35,919
the Android version, or Apple car Play, both are registered

45
00:02:36,080 --> 00:02:40,000
trademarks or whatever. It also does Bluetooth, but here's the thing.

46
00:02:40,240 --> 00:02:46,240
Unlike most in car dashes that have their own GPS, right,

47
00:02:46,520 --> 00:02:49,520
this one it connects to the rate, it has radio

48
00:02:49,599 --> 00:02:53,879
and all that stuff that you would imagine. But Apple

49
00:02:53,960 --> 00:02:56,319
Car Play in my case, because you're an iPhone user,

50
00:02:56,439 --> 00:02:59,240
does every Yeah, because I'm an iPhone user. My brother

51
00:02:59,280 --> 00:03:01,360
has another one. It does Android Auto. But they both

52
00:03:01,360 --> 00:03:04,800
do the same thing, basically use your phone. So I

53
00:03:04,960 --> 00:03:09,360
use ways to navigate and it shows right on the console.

54
00:03:09,039 --> 00:03:10,240
Speaker 2: And it's better in every way.

55
00:03:10,400 --> 00:03:13,000
Speaker 1: It's better in every way than the standard stuff that

56
00:03:13,039 --> 00:03:15,639
comes in a car, certainly, and even better than Google Maps.

57
00:03:15,680 --> 00:03:18,879
Speaker 2: I think, well, these Google Maps actually under the hood. Yeah,

58
00:03:18,960 --> 00:03:21,520
they owned by Google, but you get the.

59
00:03:21,639 --> 00:03:26,439
Speaker 1: Sort of reports of you know, traffic and police stuff.

60
00:03:26,680 --> 00:03:29,560
Speaker 2: Which apparently police watch closely and then just remove themselves

61
00:03:29,599 --> 00:03:32,080
whenever somebody identifies the speed trap to go Nope, that's

62
00:03:32,039 --> 00:03:32,759
speed trap's gone.

63
00:03:32,800 --> 00:03:35,039
Speaker 1: Well, let me tell you. I drove to Pennsylvania over

64
00:03:35,039 --> 00:03:38,479
the weekend in back six hour trip and it worked

65
00:03:38,520 --> 00:03:39,319
like a dream.

66
00:03:39,560 --> 00:03:41,400
Speaker 2: Yeah. Kept out of the bad traffic.

67
00:03:41,560 --> 00:03:44,199
Speaker 1: Yeah yeah, and yeah, except for the bad traffic, which

68
00:03:44,280 --> 00:03:46,400
you know it told me about. It was too late,

69
00:03:46,439 --> 00:03:48,080
but it could have re routed me.

70
00:03:48,199 --> 00:03:49,639
Speaker 2: But off it to tell you and say it's still

71
00:03:49,639 --> 00:03:50,240
the best route.

72
00:03:50,360 --> 00:03:52,919
Speaker 1: Yes, it's still the best route exactly, and most of

73
00:03:52,960 --> 00:03:54,400
it was just caused by bad weather.

74
00:03:54,639 --> 00:03:57,000
Speaker 2: So really, this is device, this pioneer device is a

75
00:03:57,000 --> 00:04:00,639
big screen relatively speaking in your car, ties to your

76
00:04:00,680 --> 00:04:03,199
phone so that you don't have to look at your

77
00:04:03,240 --> 00:04:04,960
phone to do NAV right right.

78
00:04:04,879 --> 00:04:07,400
Speaker 1: So you can use you can listen to anything on

79
00:04:07,439 --> 00:04:08,199
your phone that you.

80
00:04:08,159 --> 00:04:10,319
Speaker 2: Have access to Spotify at all.

81
00:04:10,520 --> 00:04:15,439
Speaker 1: Yep. And how before I was connecting audio with Bluetooth right,

82
00:04:15,479 --> 00:04:18,240
and there's a delay with Bluetooth, But this one has

83
00:04:18,240 --> 00:04:21,120
a USB jack, a female jack that comes right out

84
00:04:21,120 --> 00:04:24,959
of the dashboard and you plug your phone right into it,

85
00:04:25,360 --> 00:04:28,240
so there's no delay whenever you pause something.

86
00:04:27,959 --> 00:04:30,079
Speaker 2: Or you want to say you're charging, so you know.

87
00:04:30,160 --> 00:04:32,079
Speaker 1: Charging, skipping forward, skivving ahead.

88
00:04:32,319 --> 00:04:34,720
Speaker 2: Well, because the other reality is you're running the GPS

89
00:04:34,759 --> 00:04:37,360
sensors the whole time because it's actually doing the NAV work.

90
00:04:37,399 --> 00:04:39,399
So it's going to mow your battery unless it's plugged in.

91
00:04:39,600 --> 00:04:41,759
Speaker 1: Yep, and it's plugged in and I had no problem

92
00:04:41,759 --> 00:04:45,120
with that. And also my car came with a little

93
00:04:45,199 --> 00:04:49,160
voice button on the on the steering wheel, but it

94
00:04:49,199 --> 00:04:50,360
really didn't do anything.

95
00:04:51,079 --> 00:04:53,480
Speaker 2: It's the old voice, old old boy.

96
00:04:53,600 --> 00:04:57,319
Speaker 1: But this connects directly to it, so I can essentially

97
00:04:57,360 --> 00:04:59,920
any time I want, I can say, call this person,

98
00:05:00,439 --> 00:05:02,279
text message this person.

99
00:05:02,079 --> 00:05:03,959
Speaker 2: And it's now sending that to the phone.

100
00:05:03,959 --> 00:05:06,040
Speaker 1: Sending it to the phone. Right, I can send text

101
00:05:06,079 --> 00:05:09,240
messages or whatever. I can skip ahead if I don't

102
00:05:09,279 --> 00:05:12,000
like the ads of my podcast, Hey, should I have

103
00:05:12,120 --> 00:05:12,439
said that?

104
00:05:12,600 --> 00:05:15,040
Speaker 2: You shouldn't say that. No, have you noticed what your

105
00:05:15,040 --> 00:05:15,720
businesses like?

106
00:05:15,759 --> 00:05:19,079
Speaker 1: Come on, but you know I've heard these same ads

107
00:05:19,120 --> 00:05:22,759
a million times, and I skipped through. I just had

108
00:05:22,800 --> 00:05:25,480
a great experience. Now I will tell you I gotcha,

109
00:05:25,480 --> 00:05:27,480
And I'm sorry, guys, I'm taking up too much time

110
00:05:27,480 --> 00:05:30,160
with this, but there was a gotcha. When I first

111
00:05:30,360 --> 00:05:34,560
set out, I was using an existing lightning cable and

112
00:05:34,839 --> 00:05:38,160
I was getting audio dropouts and it was the cable.

113
00:05:38,399 --> 00:05:40,720
It was the cable. I stopped at a mall, I

114
00:05:40,759 --> 00:05:43,720
went to the Apple store. I got an official Apple iOS.

115
00:05:43,800 --> 00:05:46,680
Speaker 2: You spend sixty bucks on a cable and it worked,

116
00:05:47,800 --> 00:05:50,959
It fixed it. You know, if you actually watch YouTube

117
00:05:51,000 --> 00:05:53,720
on disassembling some of those sixty dollars cables, there's a

118
00:05:53,720 --> 00:05:56,680
lot of stuff in those cables. They're not just wires, right,

119
00:05:57,079 --> 00:06:00,240
so it didn't work with a third party cable that.

120
00:06:00,240 --> 00:06:04,000
Speaker 1: It did with the iOS came okay, all right, who's

121
00:06:04,040 --> 00:06:04,600
talking to us?

122
00:06:04,680 --> 00:06:07,360
Speaker 2: Richard Grabby comment off a show eighteen ninety nine back

123
00:06:07,399 --> 00:06:09,079
in May of twenty twenty four when we talked to

124
00:06:09,120 --> 00:06:11,279
our friend Aaron Erickson, who hadn't been on the show

125
00:06:11,279 --> 00:06:13,360
in a very long time, the nomadic developer, who we

126
00:06:13,399 --> 00:06:16,480
now called the nomadic AI developer because why not, all right?

127
00:06:17,160 --> 00:06:19,480
And it was part of a sort of two show

128
00:06:19,519 --> 00:06:21,800
set because we also did that show with Sean Wildermouth

129
00:06:21,879 --> 00:06:25,160
talking about being in a computing career later in your life,

130
00:06:25,199 --> 00:06:28,160
which islicited a huge response. Oh yeah, that was great,

131
00:06:28,399 --> 00:06:31,160
and you know, Sean, I think expressed a lot of

132
00:06:31,199 --> 00:06:33,439
worries that all of us had. And then in comes

133
00:06:33,519 --> 00:06:37,759
Aaron who's like, hey, I've totally retooled my career again

134
00:06:38,519 --> 00:06:41,439
in my late fifties and I'm now working for Nvidia,

135
00:06:41,600 --> 00:06:44,360
all in on the on the new technology, which I

136
00:06:44,360 --> 00:06:46,519
thought it was just an interesting bounce to too. And

137
00:06:46,560 --> 00:06:49,839
this is a comment from Trev who says, Hey, I

138
00:06:49,839 --> 00:06:52,360
love the conversation day. Aaron has had an amazing career and

139
00:06:52,399 --> 00:06:54,319
I would suggest it in VIDR. Super lucky to have

140
00:06:54,360 --> 00:06:57,319
him on board. The conversation on generative AI touched on

141
00:06:57,360 --> 00:06:59,399
the travel industry, and I thought that I would share

142
00:06:59,399 --> 00:07:02,279
something from a presitation I attended last week. A New

143
00:07:02,399 --> 00:07:05,160
Zealand travel agency who during the pandemic lost something like

144
00:07:05,199 --> 00:07:08,160
eighty percent of its value and sixty percent of its staff,

145
00:07:08,519 --> 00:07:11,720
has a terrible problem. Now they can't hire travel agents

146
00:07:12,000 --> 00:07:15,800
because during the pandemic they all retrained in other careers

147
00:07:16,000 --> 00:07:20,160
and they're not coming back. So they've now turned two

148
00:07:20,720 --> 00:07:23,439
large language models and new automation to solve this problem.

149
00:07:23,879 --> 00:07:27,199
And he's obviously Trev used as the service because he said, normally,

150
00:07:27,240 --> 00:07:28,879
if you want an itinerary for a trip, it would

151
00:07:28,920 --> 00:07:30,879
take the travelation a couple of hours to put it together.

152
00:07:31,240 --> 00:07:34,000
Now I get it in two minutes, and it's based

153
00:07:34,040 --> 00:07:36,839
on all my wants and wishes, all the little details

154
00:07:36,839 --> 00:07:39,399
and so forth. And that includes confirming the hotels, setting

155
00:07:39,480 --> 00:07:43,319
up all the flights, optimizing to my flight needs, your time,

156
00:07:43,480 --> 00:07:47,079
your budget. What stoffovers is a perfect illustration of where

157
00:07:47,279 --> 00:07:50,800
these technologies can transform the industry. And thanks so much

158
00:07:50,839 --> 00:07:55,360
for the show. Awesome, Yeah, you know it's we're dealing

159
00:07:55,399 --> 00:07:58,120
with It's a double whammy, isn't it. The pandemic definitely

160
00:07:58,199 --> 00:08:00,920
tore up a bunch of industry, and then we have

161
00:08:01,000 --> 00:08:04,519
this new technology that gives us a better interface. I mean,

162
00:08:04,560 --> 00:08:07,720
you've always been able to build your own travel itinerary.

163
00:08:07,759 --> 00:08:10,120
It's just you know, I still do it this way

164
00:08:10,120 --> 00:08:12,199
where I got trip it open over here, and I've

165
00:08:12,199 --> 00:08:17,199
got various websites for airlines there and different hotels and

166
00:08:17,319 --> 00:08:19,600
you know, but the fact that you could pull out

167
00:08:19,600 --> 00:08:21,839
all together with software using a modern travel agency, and

168
00:08:21,839 --> 00:08:24,519
it costs the agency left to deliver you faster service.

169
00:08:24,639 --> 00:08:26,199
Like that's what automation is all about.

170
00:08:27,360 --> 00:08:30,879
Speaker 1: I know, a whole bunch of office space that is currently available.

171
00:08:31,399 --> 00:08:34,080
Speaker 2: M well, a lot of people are not, you know,

172
00:08:34,120 --> 00:08:36,840
still working from home, and it's not going to change. Yeah, so,

173
00:08:37,000 --> 00:08:38,639
or at least it seems not to, so, Trev, thank

174
00:08:38,679 --> 00:08:40,039
you so much for your comment and a copy of

175
00:08:40,080 --> 00:08:41,559
music Cobey. It's on its way to you. And if

176
00:08:41,559 --> 00:08:43,200
you'd like copy of music code by I write a

177
00:08:43,200 --> 00:08:46,000
comment on the website of dot netroocks dot com or

178
00:08:46,039 --> 00:08:47,679
on the facebooks. We publish every show there, and if

179
00:08:47,679 --> 00:08:49,200
you comment there and everybody on the show, we'll send

180
00:08:49,240 --> 00:08:50,519
you a copy of music Go Buy and.

181
00:08:50,639 --> 00:08:53,320
Speaker 1: Music code by still going strong after all these years.

182
00:08:53,399 --> 00:08:57,159
A great way to stay focused when you're writing code.

183
00:08:57,360 --> 00:08:59,320
Speaker 2: I got a nice note from a listener who I

184
00:08:59,480 --> 00:09:01,240
had sent the code too so that they could get

185
00:09:01,240 --> 00:09:03,720
a Copyody, Who's like, this changes the way I work?

186
00:09:03,960 --> 00:09:05,240
Speaker 1: Yeah, it is good, you know.

187
00:09:05,759 --> 00:09:06,399
Speaker 2: Yeah?

188
00:09:06,519 --> 00:09:11,279
Speaker 1: Okay. Let us introduce our guests today who've never been

189
00:09:11,320 --> 00:09:13,320
on the show before, so I'm really looking forward to

190
00:09:13,360 --> 00:09:17,840
talking to them. Malti Lawler Anderson is a passionate machine

191
00:09:18,200 --> 00:09:22,799
learning engineer working for Norkart, operating in the geospatial domain.

192
00:09:23,799 --> 00:09:28,320
And Matilda Ushtevik has a master's degree in geographical IT

193
00:09:28,759 --> 00:09:32,519
with a specialization in geographical AI. You can read their

194
00:09:32,639 --> 00:09:35,200
full bios at dot netroocks dot com, of course, but

195
00:09:35,320 --> 00:09:39,039
that'll get us started anyway. Welcome guys, thank you, thank you,

196
00:09:39,120 --> 00:09:41,639
thank you. All right, so that first voice you heard

197
00:09:41,679 --> 00:09:45,279
was Matilda, the second one was malte just to identify

198
00:09:45,320 --> 00:09:48,559
for our listeners. So who wants to start with the

199
00:09:48,600 --> 00:09:50,639
elevator pitch? What are you guys doing out there?

200
00:09:50,759 --> 00:09:53,759
Speaker 5: Do you want me to take the first one? I

201
00:09:53,759 --> 00:09:59,080
can do that, yes, thank you? Well, you know is

202
00:09:59,519 --> 00:10:04,279
norwegi An it company at this point. I guess historically

203
00:10:04,279 --> 00:10:06,960
we did a lot of maps and stuff like that,

204
00:10:07,440 --> 00:10:10,559
but we are more more more pivoted into doing it,

205
00:10:10,960 --> 00:10:14,519
and we deliver a lot, a lot, a lot of

206
00:10:14,559 --> 00:10:20,440
different products within the juicepacial domain. We have exactly three

207
00:10:20,519 --> 00:10:25,360
point fourteen or pie products per developer.

208
00:10:26,279 --> 00:10:29,879
Speaker 2: Great, so you have to if you add new products,

209
00:10:29,879 --> 00:10:32,039
you have to hire more developers to keep the ratio correct.

210
00:10:32,200 --> 00:10:33,440
Is that the plant exactly?

211
00:10:33,639 --> 00:10:36,360
Speaker 4: Yeah, yeah, every developer that gets hired has to bring

212
00:10:36,440 --> 00:10:38,759
in three point fourteen products.

213
00:10:38,840 --> 00:10:48,159
Speaker 2: So great, Oh my goodness. So you're using primarily aerial data.

214
00:10:48,200 --> 00:10:51,200
I guess there's some satellite, some aircraft. Of course, drones

215
00:10:51,240 --> 00:10:55,519
have changed this landscape as well, but then turning it

216
00:10:55,559 --> 00:10:57,240
into usable imagery it's one thing they have a bunch

217
00:10:57,240 --> 00:10:58,759
of photos is another thing. To turn it into something

218
00:10:58,799 --> 00:11:01,240
that's really usable. That's got to be pretty software intensive.

219
00:11:01,720 --> 00:11:07,799
Speaker 4: Yeah, definitely. We're mostly using different aerial images and creating

220
00:11:09,679 --> 00:11:14,799
like servers that can handle both three D tiles as

221
00:11:14,840 --> 00:11:18,600
well as the aerial images and vector data that we

222
00:11:18,639 --> 00:11:24,080
can then implement into different softwares. So we're mostly using

223
00:11:24,120 --> 00:11:26,759
the different maps more than creating them.

224
00:11:27,000 --> 00:11:30,559
Speaker 2: Okay, So yeah, somebody else is involved in collecting the data.

225
00:11:30,639 --> 00:11:32,039
Now you're trying to get value.

226
00:11:31,799 --> 00:11:32,720
Speaker 4: From it exactly.

227
00:11:33,039 --> 00:11:35,240
Speaker 2: Yeah, well, how long has that been a problem in

228
00:11:35,279 --> 00:11:37,360
our industry? We collect lots of data, we just don't

229
00:11:37,399 --> 00:11:39,639
do anything with it. So where how does machine learning

230
00:11:39,679 --> 00:11:40,360
come into the equation.

231
00:11:41,279 --> 00:11:44,840
Speaker 4: So the first thing we started to test was how

232
00:11:44,879 --> 00:11:48,600
we could improve the vector data based on what is

233
00:11:48,639 --> 00:11:53,200
actual actually visible in the aerial images. So traditionally what

234
00:11:53,240 --> 00:11:55,240
you do is that you look at the aerial images

235
00:11:55,360 --> 00:11:59,080
manually and then you draw the maps from those images,

236
00:12:00,039 --> 00:12:04,519
which is a manual process, very time consuming, and of

237
00:12:04,559 --> 00:12:07,759
course it's prone to errors because it's easy to not

238
00:12:07,879 --> 00:12:08,639
detect everything.

239
00:12:09,480 --> 00:12:12,639
Speaker 2: So using the human to do the pattern recognition to

240
00:12:12,679 --> 00:12:14,559
say that's an image of this area, here's how it

241
00:12:14,639 --> 00:12:15,200
lays together.

242
00:12:15,759 --> 00:12:18,759
Speaker 4: Yeah, this is a building. This is its walls, right,

243
00:12:18,799 --> 00:12:21,480
this is the details of the buildings and so on,

244
00:12:21,559 --> 00:12:25,720
and roads and everything. So we started testing if we

245
00:12:25,759 --> 00:12:29,240
could use machine learning to detect the buildings for us

246
00:12:29,960 --> 00:12:32,000
and also different types of objects.

247
00:12:32,240 --> 00:12:35,480
Speaker 1: That must be a lot of work job security for

248
00:12:35,519 --> 00:12:36,200
a lot of people.

249
00:12:36,480 --> 00:12:39,879
Speaker 4: Yeah, definitely. So we started testing this back in I

250
00:12:39,919 --> 00:12:45,279
think it was twenty sixteen, which is when image recognition

251
00:12:45,399 --> 00:12:49,120
got really good and it worked pretty well, and then

252
00:12:49,159 --> 00:12:54,399
we've continued developing these methods until not more or less.

253
00:12:54,519 --> 00:12:58,279
Speaker 1: Okay, when you were describing what you used, just these

254
00:12:58,320 --> 00:13:01,080
image this image data and that you go and get it.

255
00:13:02,440 --> 00:13:05,600
Don't these databases exist? We were talking about Google Maps,

256
00:13:05,600 --> 00:13:11,159
and that certainly is a rich database of topical imagery.

257
00:13:11,799 --> 00:13:15,000
Is it something that you can't use for copyright reasons

258
00:13:15,159 --> 00:13:18,639
or you need to do your own imaging in order

259
00:13:18,679 --> 00:13:20,960
to get the level of detail? Like why is it

260
00:13:21,000 --> 00:13:22,600
that you can use something off the shelf?

261
00:13:22,679 --> 00:13:25,360
Speaker 4: Yeah, level of detail is definitely a big part of it,

262
00:13:26,480 --> 00:13:32,120
and ownership and costs also. So in Norway, all the

263
00:13:32,240 --> 00:13:36,879
municipalities have areal images of high resolution for their areas

264
00:13:37,039 --> 00:13:43,000
that they update maybe every year for the big municipalities,

265
00:13:43,120 --> 00:13:45,919
maybe every fourth year for the smaller ones. But it's

266
00:13:46,039 --> 00:13:48,960
very higher resolution and the level of detail in the

267
00:13:49,039 --> 00:13:54,120
Norwegian maps is incredibly high. They're very detailed and they're

268
00:13:54,159 --> 00:14:00,679
on a Norwegian specific format, so all the detailed in

269
00:14:00,679 --> 00:14:03,919
Norwegian maps are way higher than Google Maps.

270
00:14:04,120 --> 00:14:07,039
Speaker 1: Yes, so that's what you're using using the Norwegian data

271
00:14:07,759 --> 00:14:10,919
maps that already exist, so you're not actually going out

272
00:14:10,960 --> 00:14:15,159
and flying drones over buildings and taking pictures yourself or whatever.

273
00:14:16,000 --> 00:14:20,679
Speaker 4: Yeah, exactly. So originally back in nineteen sixty one and

274
00:14:20,759 --> 00:14:25,879
so on, Woodcraft did produce aerial images, right, and then

275
00:14:25,960 --> 00:14:29,399
they became a software company, I see.

276
00:14:28,960 --> 00:14:32,240
Speaker 2: Like everybody else. Yeah, but I guess you're I mean,

277
00:14:32,279 --> 00:14:35,120
your goal is not to do navigation. I imagine you're

278
00:14:35,120 --> 00:14:36,759
doing other things with the data.

279
00:14:36,919 --> 00:14:41,240
Speaker 4: Yeah, mostly other things. We also do some navigation, but

280
00:14:41,519 --> 00:14:42,440
mostly other things.

281
00:14:42,480 --> 00:14:44,879
Speaker 2: Yes, So what kind of what do people want this

282
00:14:44,960 --> 00:14:45,279
data for?

283
00:14:45,399 --> 00:14:45,480
Speaker 5: Like?

284
00:14:45,519 --> 00:14:46,480
Speaker 2: What are they asking for?

285
00:14:46,679 --> 00:14:46,840
Speaker 5: Oh?

286
00:14:46,960 --> 00:14:54,159
Speaker 4: So many things. It can be visually to see other

287
00:14:54,240 --> 00:14:58,919
types of data together with their images. But when you're

288
00:14:58,960 --> 00:15:02,080
talking about the vector data. In the vector maps, it's

289
00:15:02,120 --> 00:15:04,240
for analysis.

290
00:15:03,639 --> 00:15:08,039
Speaker 5: Planning of infrastructure. You know, taxation in Norway at least

291
00:15:08,080 --> 00:15:11,000
you get text based on what buildings you have in

292
00:15:11,039 --> 00:15:14,960
your property, so it's really important to know, like or

293
00:15:15,000 --> 00:15:19,080
if a fire starts, it's really important for the firefighters

294
00:15:19,080 --> 00:15:21,519
to know what buildings exists where, you know, all that

295
00:15:21,600 --> 00:15:22,200
kind of stuff.

296
00:15:22,279 --> 00:15:24,799
Speaker 2: So yeah, and it needs to be regularly updated. So

297
00:15:24,799 --> 00:15:27,360
you've got the municipalities, the big ones at least scanning

298
00:15:27,399 --> 00:15:31,000
every year. Like that also introduces in angle of how

299
00:15:31,080 --> 00:15:35,159
is the land evolving year over year. Certainly thanks for

300
00:15:35,200 --> 00:15:38,519
British Columbia, which I often equate similar to Norway in

301
00:15:38,519 --> 00:15:42,360
some respective stuff. We're really big. It's a tree coverage

302
00:15:42,639 --> 00:15:48,240
right between logging, forest fires, and regrowth. You have to

303
00:15:48,240 --> 00:15:50,759
go and image those areas to really understand what's the

304
00:15:50,879 --> 00:15:51,960
state of the land.

305
00:15:53,600 --> 00:15:58,679
Speaker 5: Yeah, yeah, yeah for sure. And we've seen others also

306
00:15:59,080 --> 00:16:01,440
that has done exactly that in Norway as well, try

307
00:16:01,559 --> 00:16:03,200
to map up what trees are where?

308
00:16:03,360 --> 00:16:04,960
Speaker 2: Yeah yeah.

309
00:16:05,200 --> 00:16:08,519
Speaker 1: Where does development come in? Are you doing mostly Python

310
00:16:09,360 --> 00:16:14,000
programming against this data or are you using any cloud computing?

311
00:16:14,360 --> 00:16:15,080
What are you using?

312
00:16:15,279 --> 00:16:19,799
Speaker 5: Yeah, we're mostly using Python like everybody else's machine learning,

313
00:16:20,120 --> 00:16:26,000
at least for this project, and this is mostly trained

314
00:16:26,039 --> 00:16:32,519
on our own data center. So we have two L

315
00:16:32,840 --> 00:16:41,200
forty GPUs with sixty four gigabytes of space each and

316
00:16:41,279 --> 00:16:45,440
these are quite actually big enough to you know, you

317
00:16:45,480 --> 00:16:50,559
get some really good results trying to identifying objects from

318
00:16:50,600 --> 00:16:51,320
their own images.

319
00:16:51,720 --> 00:16:54,360
Speaker 2: Oh wow, okay, but so not even using the cloud.

320
00:16:54,440 --> 00:16:58,000
You're running your own You guys really are old school AI.

321
00:16:59,360 --> 00:17:01,039
Speaker 1: Yeah, yeah, we're running our own.

322
00:17:01,120 --> 00:17:05,119
Speaker 5: But we've also tried the cloud experimented a bit with that,

323
00:17:05,200 --> 00:17:09,319
but we have we figured out that for this project.

324
00:17:09,759 --> 00:17:12,559
We have other projects as well, of course, but for

325
00:17:12,640 --> 00:17:14,640
this project we're using our own data center yet and.

326
00:17:14,640 --> 00:17:17,480
Speaker 2: So an L forty And I'll include a link for

327
00:17:17,519 --> 00:17:19,160
the show notes. Folks want to take a look at

328
00:17:19,160 --> 00:17:22,960
these things. I mean, it looks like a little computer essentially,

329
00:17:23,599 --> 00:17:25,319
something that will go. Looks like it should be in

330
00:17:25,319 --> 00:17:29,119
a data center. Like is it anything more than just

331
00:17:29,200 --> 00:17:33,519
like an RTX forty ninety in a chassis.

332
00:17:34,039 --> 00:17:39,400
Speaker 5: I don't remember the exact specs of the forty. Does

333
00:17:39,440 --> 00:17:41,839
it have sixty four gigabytes.

334
00:17:41,160 --> 00:17:43,319
Speaker 2: Of I don't think so.

335
00:17:44,759 --> 00:17:47,559
Speaker 5: I think that's the biggest part of it, at least

336
00:17:47,640 --> 00:17:49,319
that we have that we have that.

337
00:17:49,440 --> 00:17:51,000
Speaker 2: It's just a sheer amount of memory.

338
00:17:51,319 --> 00:17:54,279
Speaker 5: Yeah, yeah, so you can have more images in memory

339
00:17:54,319 --> 00:17:55,279
at the same time.

340
00:17:55,119 --> 00:17:57,279
Speaker 2: And that's yeah, that's got to be what it's all about. Really,

341
00:17:57,279 --> 00:17:59,400
It's just like how much RAM do you have available

342
00:17:59,440 --> 00:18:01,839
to you to be able to do that as those

343
00:18:01,920 --> 00:18:05,319
image analysis Yeah, for sure, I'm just looking it up. Yeah,

344
00:18:05,440 --> 00:18:08,759
twenty four gigs on a on A forty ninety and

345
00:18:08,960 --> 00:18:11,920
forty eight on an on an L forty. But you know,

346
00:18:12,079 --> 00:18:15,359
pipeline wise, like they're not that different, but they're still

347
00:18:15,400 --> 00:18:19,400
different and yeah PCIe interface so and three hundred watts

348
00:18:19,400 --> 00:18:21,240
so it'll keep a room warm.

349
00:18:22,160 --> 00:18:23,720
Speaker 5: Oh yeah, you need some cooling for that.

350
00:18:24,079 --> 00:18:26,839
Speaker 2: Oh yeah, no kidding, but absolutely So you use a

351
00:18:26,880 --> 00:18:27,720
pair of these.

352
00:18:28,200 --> 00:18:29,200
Speaker 5: Yeah, we have two.

353
00:18:29,640 --> 00:18:31,160
Speaker 2: That's nice. We have two.

354
00:18:31,200 --> 00:18:33,960
Speaker 5: But there are sixty four gigabytes of BRIANMA, not forty eight.

355
00:18:34,799 --> 00:18:36,759
Speaker 2: Yeah, so maybe a newer model.

356
00:18:37,279 --> 00:18:38,720
Speaker 5: Maybe, I'm not sure.

357
00:18:38,799 --> 00:18:41,559
Speaker 2: Yeah, that's cool. I gotta I gotta find how much

358
00:18:41,599 --> 00:18:44,839
these things cost. I need not that I need rack

359
00:18:44,880 --> 00:18:46,799
here anymore. I'm doing everything I can not to buy

360
00:18:46,799 --> 00:18:50,279
any more rack related equipment. Please please please stop, like,

361
00:18:50,359 --> 00:18:54,400
don't do it? Yeah, five bucks of crack man thousand.

362
00:18:54,319 --> 00:18:54,920
Speaker 5: Five thousand.

363
00:18:55,319 --> 00:18:55,519
Speaker 3: Yeah.

364
00:18:56,079 --> 00:18:59,599
Speaker 5: Don't you remember how much we paid Matilda. I don't remember.

365
00:19:00,559 --> 00:19:03,359
Oh I don't remember. No either.

366
00:19:03,480 --> 00:19:05,799
Speaker 2: It would have been a coroner anyway, so nobody would.

367
00:19:08,480 --> 00:19:10,519
Speaker 4: All I know is that it was cheaper than doing

368
00:19:10,559 --> 00:19:11,400
it in the clouds.

369
00:19:11,559 --> 00:19:12,079
Speaker 2: Oh wow.

370
00:19:13,039 --> 00:19:13,240
Speaker 5: Yeah.

371
00:19:13,960 --> 00:19:16,519
Speaker 2: There's a lot of testing, right because the cloud is

372
00:19:16,559 --> 00:19:18,599
only dinging you by the minute, So at some point

373
00:19:18,680 --> 00:19:20,359
you have to do the projection and go, hey, if

374
00:19:20,359 --> 00:19:23,279
we just buy this, we're good for a certain amount

375
00:19:23,279 --> 00:19:25,200
of time. I mean. The upside of using the cloud

376
00:19:25,319 --> 00:19:28,680
is they're going to upgrade their hardware for you. Now,

377
00:19:28,720 --> 00:19:31,079
you guys are on the hook for you know, X

378
00:19:31,119 --> 00:19:33,839
many years, probably four or five years of amortization over

379
00:19:33,880 --> 00:19:36,640
this stuff to make it make make sense. But I

380
00:19:36,680 --> 00:19:40,359
get it, totally makes sense. It's very it's reasonable.

381
00:19:40,440 --> 00:19:44,880
Speaker 1: I'm interested in what other uh, you know, applications that

382
00:19:44,920 --> 00:19:47,839
we have, and one that came to mind is law enforcement.

383
00:19:48,559 --> 00:19:52,039
Does law enforcement use your data in any way that

384
00:19:52,160 --> 00:19:52,960
you can talk about?

385
00:19:55,400 --> 00:19:59,119
Speaker 4: Good question. I don't think so, but I'm not completely

386
00:19:59,119 --> 00:20:00,799
sure because we have a lot lot of customers that

387
00:20:00,920 --> 00:20:04,519
use our data that we don't necessarily know about.

388
00:20:04,920 --> 00:20:07,759
Speaker 2: Right, So, how do you train a model to figure

389
00:20:07,759 --> 00:20:09,440
out that that's a building and that's a wall.

390
00:20:09,599 --> 00:20:12,640
Speaker 4: Yeah. So the really great thing about this is that

391
00:20:12,880 --> 00:20:16,200
since we already have the vector maps, people have already

392
00:20:16,279 --> 00:20:21,920
done the manual work looking at these images. Yeah, we

393
00:20:22,000 --> 00:20:24,119
can just use the existing data that we have and

394
00:20:24,160 --> 00:20:28,400
we can produce enormous amounts of training data automatically. So

395
00:20:28,440 --> 00:20:32,079
that's the really great thing about these models. So what

396
00:20:32,160 --> 00:20:35,920
we do is that we combine aerial images from a

397
00:20:35,960 --> 00:20:41,440
small area around five twelve times five total pixels, and

398
00:20:41,480 --> 00:20:44,960
we get the existing data for that same area and

399
00:20:45,000 --> 00:20:48,359
we can combine those images to produce the input image

400
00:20:48,400 --> 00:20:52,680
and the label image, and then we can basically produce

401
00:20:52,720 --> 00:20:55,000
as much data as we want because we have data

402
00:20:55,039 --> 00:20:57,559
for all of Norway, and we also have historical data,

403
00:20:57,680 --> 00:20:59,920
so we can combine this and then train our data

404
00:21:01,000 --> 00:21:05,240
or train our models with that automatically produced data.

405
00:21:05,319 --> 00:21:08,279
Speaker 2: Okay, and so I mean I think two things. Some

406
00:21:08,359 --> 00:21:09,720
of that one is you're just saving time on a

407
00:21:09,720 --> 00:21:11,519
new city day. Say yes, that's the same building from

408
00:21:11,559 --> 00:21:14,799
last time. If it doesn't identify it, maybe that's because

409
00:21:14,839 --> 00:21:16,359
the building is changed.

410
00:21:15,960 --> 00:21:17,400
Speaker 5: In some way exactly.

411
00:21:17,839 --> 00:21:19,680
Speaker 2: I wonder how sensitive it would be, Like if a

412
00:21:19,720 --> 00:21:22,599
building puts solar panels on its roof, so now it

413
00:21:22,640 --> 00:21:25,519
looks a little different. Is it still able to map

414
00:21:25,559 --> 00:21:27,160
it or does it pull it up as I don't

415
00:21:27,160 --> 00:21:27,799
know what this is.

416
00:21:28,119 --> 00:21:30,200
Speaker 4: Yeah, it depends on what is in the training data.

417
00:21:30,799 --> 00:21:33,799
So if there were some new kind of solar panels

418
00:21:33,839 --> 00:21:36,559
popping up in Norway, our model would most likely not

419
00:21:36,720 --> 00:21:40,000
detect it. Right, If it's solar panels similar to once

420
00:21:40,039 --> 00:21:42,920
we already have, we would most likely detect it.

421
00:21:43,200 --> 00:21:44,920
Speaker 2: So is your vector data map down to that level

422
00:21:44,920 --> 00:21:46,559
says that's not only a building that's a building with

423
00:21:46,559 --> 00:21:47,559
solar panels on the roof.

424
00:21:47,759 --> 00:21:50,319
Speaker 4: If the solar panels are in the training data, they

425
00:21:50,400 --> 00:21:52,559
can train a model with that. Yeah, so we have

426
00:21:52,680 --> 00:21:55,200
tested that as well, but then we need to specifically

427
00:21:55,279 --> 00:21:57,839
have the training data with solar panels.

428
00:21:57,960 --> 00:21:58,160
Speaker 2: Right.

429
00:21:58,240 --> 00:22:01,680
Speaker 1: And when you're drawing these things by hand, you're doing

430
00:22:01,720 --> 00:22:04,440
these sort of annotations. I guess you would say, really,

431
00:22:04,480 --> 00:22:08,160
are you just like drawing lines and saying this is

432
00:22:08,200 --> 00:22:11,759
how long this? You know, I don't know how wide

433
00:22:11,839 --> 00:22:15,799
and how high wits and heights three dimensional data, I

434
00:22:15,799 --> 00:22:19,440
guess you would say, or how detailed do those hand

435
00:22:19,559 --> 00:22:20,200
drawings get.

436
00:22:20,359 --> 00:22:24,480
Speaker 4: Well, we're not actually doing the drawing since the this

437
00:22:24,480 --> 00:22:28,519
this has already been done by people specialized in this

438
00:22:28,599 --> 00:22:30,319
field in different companies.

439
00:22:30,559 --> 00:22:33,640
Speaker 1: Oh okay. I was under the impression when you first

440
00:22:33,640 --> 00:22:35,720
spoke about it that you had a team of people

441
00:22:35,759 --> 00:22:38,799
that were drawing on top of manually drawing on top

442
00:22:38,839 --> 00:22:39,519
of images.

443
00:22:39,839 --> 00:22:42,599
Speaker 4: But yeah, I know different companies in Norway do this.

444
00:22:42,720 --> 00:22:45,559
Speaker 2: So you're just pure data and it's done now, so

445
00:22:45,599 --> 00:22:46,640
you've trained the model.

446
00:22:46,799 --> 00:22:49,599
Speaker 5: Yeah, that's what we're trying to automate by this manual

447
00:22:49,680 --> 00:22:50,279
drawing process.

448
00:22:50,480 --> 00:22:54,240
Speaker 2: Right, So each time new images come in you're able

449
00:22:54,279 --> 00:22:57,279
to then use the machine learning model to establish that

450
00:22:57,400 --> 00:22:59,319
this is the same image of the same area with

451
00:22:59,359 --> 00:23:00,000
these same buildings.

452
00:23:00,480 --> 00:23:03,200
Speaker 1: Exactly how often does the data change.

453
00:23:03,000 --> 00:23:06,319
Speaker 4: It depends on the municipality when they how often they

454
00:23:07,119 --> 00:23:10,480
buy new images, but it can be up to every year.

455
00:23:11,559 --> 00:23:14,519
So when there are new images, we can run our

456
00:23:14,559 --> 00:23:17,960
model detect all the buildings in the municipality and we

457
00:23:18,079 --> 00:23:23,039
then compare those results to the existing buildings, which means

458
00:23:23,079 --> 00:23:26,000
that we can figure out where there have been changes.

459
00:23:26,799 --> 00:23:30,799
Have someone is there new buildings popping up, or has

460
00:23:30,799 --> 00:23:33,799
any of the buildings changed. And that data set is

461
00:23:33,880 --> 00:23:37,119
very interesting for the municipalities because then they can figure

462
00:23:37,160 --> 00:23:41,240
out where their maps are not as similar to the

463
00:23:41,319 --> 00:23:43,000
reality visible in the images.

464
00:23:43,079 --> 00:23:46,119
Speaker 2: What about things like seasonality, like how good is this

465
00:23:46,160 --> 00:23:47,960
going to map a picture from the summer versus a

466
00:23:47,960 --> 00:23:48,720
picture in the winter.

467
00:23:49,200 --> 00:23:54,960
Speaker 4: Yeah, good question. So the companies that take the aerial images,

468
00:23:55,039 --> 00:24:01,480
they usually always take the images in the same same.

469
00:24:01,279 --> 00:24:03,880
Speaker 2: Time of year, right, So just avoid the problem by

470
00:24:03,960 --> 00:24:07,799
we only photograph these this area in July should be

471
00:24:07,799 --> 00:24:11,240
pretty consistent. And of course you need clear days because

472
00:24:11,440 --> 00:24:13,599
taking pictures in the rain questionable value.

473
00:24:13,839 --> 00:24:15,640
Speaker 4: Yeah, so they have to work for good weather.

474
00:24:16,319 --> 00:24:18,880
Speaker 5: Yeah, and in Norway there's only a kind of good weather,

475
00:24:19,000 --> 00:24:21,559
you know, in the spring and summer, so that's where

476
00:24:21,599 --> 00:24:22,759
all these pictures are taken.

477
00:24:23,279 --> 00:24:25,960
Speaker 2: Been there, I've been there in June, I've been there

478
00:24:26,000 --> 00:24:32,960
in November, and there's a difference. Okay, So I mean

479
00:24:32,960 --> 00:24:35,759
we've definitely picked an area here of using the machine

480
00:24:35,839 --> 00:24:38,319
learning models to do the image recognition, so you reduce

481
00:24:38,400 --> 00:24:43,119
the cost of introducing new images to the system and

482
00:24:43,160 --> 00:24:45,519
then help the help the customer in this case, you

483
00:24:45,559 --> 00:24:49,680
typical municipalities identify new buildings. That's a great class of work.

484
00:24:50,160 --> 00:24:53,000
Are there other classes of work here? Like I would

485
00:24:53,039 --> 00:24:57,200
think things like, you know, are trees dying off or

486
00:24:57,240 --> 00:24:59,839
you know, our cultural changes, those kinds of impacts might

487
00:24:59,839 --> 00:25:00,920
be turned up this way too.

488
00:25:01,079 --> 00:25:02,119
Speaker 4: Yeah. Absolutely, Yeah.

489
00:25:02,119 --> 00:25:06,559
Speaker 5: But the main one you said was, you know, detecting buildings,

490
00:25:06,599 --> 00:25:10,160
and actually, you know, one of the municipalities in Norway,

491
00:25:10,160 --> 00:25:15,039
they actually detected a lot of new buildings so that

492
00:25:15,079 --> 00:25:21,359
their property tax could be lowered for everyone in that municipality, right,

493
00:25:21,440 --> 00:25:23,960
they could still get the same income.

494
00:25:23,680 --> 00:25:25,799
Speaker 2: Because they recognized there was more buildings out there that

495
00:25:25,799 --> 00:25:29,519
they didn't know about that responsible for tax exactly.

496
00:25:29,559 --> 00:25:31,880
Speaker 4: So some had to pay more, but in general everyone

497
00:25:31,880 --> 00:25:32,640
could pay less.

498
00:25:32,759 --> 00:25:37,480
Speaker 2: Right, Yeah, the costs were already being burdened, but not

499
00:25:37,519 --> 00:25:40,319
everybody was paying their fair share effectively, right, Yeah, exactly,

500
00:25:40,440 --> 00:25:42,880
Like from a municipal data perspective, this is really powerful

501
00:25:42,880 --> 00:25:45,240
because otherwise you do this with surveyors, which you think

502
00:25:45,599 --> 00:25:48,359
mapping out aerial imagery is costly. Send a group of

503
00:25:48,400 --> 00:25:51,319
people out to go measure everything by hand like that

504
00:25:51,400 --> 00:25:52,599
takes a lot of time.

505
00:25:52,559 --> 00:25:55,680
Speaker 5: Yeah, exactly. And also some of the some of the

506
00:25:55,720 --> 00:25:58,960
buildings we can see that hasn't been updated in the

507
00:25:59,039 --> 00:26:02,200
vector data in a lot long time, but the machine

508
00:26:02,240 --> 00:26:06,200
learning model can actually detect those, So in some ways

509
00:26:06,240 --> 00:26:08,720
they're also doing a better job the models.

510
00:26:09,079 --> 00:26:12,119
Speaker 2: Right. That's interesting to see because they've got a better

511
00:26:12,200 --> 00:26:15,599
vantage point for all of this. So primarily a Python

512
00:26:15,640 --> 00:26:19,319
problem is just munging the data and doing the mapping together.

513
00:26:19,559 --> 00:26:23,319
Speaker 5: Yeah, it's mostly or it's all Python this project. And

514
00:26:23,400 --> 00:26:28,720
what we do is that we use our GPUs of course,

515
00:26:28,799 --> 00:26:33,119
and then during training we will what can you call

516
00:26:33,200 --> 00:26:37,680
it like live sample all of the images from databases

517
00:26:38,960 --> 00:26:42,960
and thereby, you know, really take care of a lot

518
00:26:42,960 --> 00:26:46,119
of pictures at the same time. However, when you do

519
00:26:46,160 --> 00:26:49,799
this thing live. You also have to make sure that

520
00:26:49,880 --> 00:26:53,440
you get the data that you want. For instance, in Norway,

521
00:26:53,519 --> 00:26:56,359
you know it's Norway, it's what is it, ninety eight

522
00:26:56,400 --> 00:26:59,720
point three percent of forest, So you should just pick

523
00:27:00,119 --> 00:27:04,559
random tiles from Norway. You're just going to You're just

524
00:27:04,559 --> 00:27:07,200
going to get trees and.

525
00:27:07,960 --> 00:27:08,880
Speaker 2: Trees exactly.

526
00:27:09,240 --> 00:27:12,200
Speaker 5: Yeah, So we have to be smart how to pick

527
00:27:12,240 --> 00:27:15,200
out this data when we're doing it live and stuff. So, yeah,

528
00:27:15,319 --> 00:27:17,279
so we have some rules that have to be set

529
00:27:17,440 --> 00:27:20,240
for some of the images that has to contain buildings

530
00:27:20,240 --> 00:27:20,680
and stuff.

531
00:27:20,839 --> 00:27:23,480
Speaker 4: Right, So this is the main thing that we've been

532
00:27:23,599 --> 00:27:27,759
working on. What is the optimal way to to select

533
00:27:27,839 --> 00:27:30,319
data to get the best models?

534
00:27:30,640 --> 00:27:33,240
Speaker 2: Right, really shaved down the part you don't have to

535
00:27:33,559 --> 00:27:35,559
you're not getting maps of the whole country. You're just

536
00:27:35,559 --> 00:27:39,359
getting maps of the interesting areas, the places where people are.

537
00:27:39,559 --> 00:27:43,519
Speaker 4: Yeah, and training data for the interesting parts. Right, because

538
00:27:43,559 --> 00:27:46,599
if all the model cs our images, of course it's

539
00:27:46,680 --> 00:27:48,799
just going to learn that nothing is building and it's

540
00:27:48,960 --> 00:27:51,880
going to be correct most of the time, yes, but

541
00:27:52,039 --> 00:27:53,720
it's not going to be useful.

542
00:27:54,680 --> 00:28:02,000
Speaker 2: How many buildings none point three per is correct right there? Yeah, Yeah,

543
00:28:02,000 --> 00:28:06,680
it's pretty dark accurate actually, three point one four our

544
00:28:06,680 --> 00:28:07,640
buildings in no.

545
00:28:07,720 --> 00:28:10,519
Speaker 5: Way three point one four.

546
00:28:12,240 --> 00:28:13,920
Speaker 2: All right, well we should break for a moment for

547
00:28:13,960 --> 00:28:15,200
these very important messages.

548
00:28:17,440 --> 00:28:21,279
Speaker 1: You know, it's common for business application to contain fifteen

549
00:28:21,319 --> 00:28:25,400
percent repetitive code just because of metaprogramming limitations in the

550
00:28:25,440 --> 00:28:29,440
C Sharp language. Why write boilerplate manually when a machine

551
00:28:29,480 --> 00:28:33,240
could generate it for you? Enter Metalama, the code generation

552
00:28:33,400 --> 00:28:36,880
and verification toolkit for C Sharp. Their C Sharp to

553
00:28:36,960 --> 00:28:43,440
c sharp template language is simply amazing logging caching memento observable.

554
00:28:43,759 --> 00:28:48,160
If it's repetitive, Metalama can automate it. Visit metalama dot

555
00:28:48,240 --> 00:28:51,279
net today and learn to automate your code patterns with

556
00:28:51,359 --> 00:28:55,640
their free edition. Remember it's Metalama with one L E

557
00:28:55,720 --> 00:29:01,000
T A L A m A dot net. Hey Carl

558
00:29:01,039 --> 00:29:04,519
here if you're wondering how to step up your debugging game.

559
00:29:05,039 --> 00:29:10,519
Raygun's crash reporting now supports portable PDB and offline error storage,

560
00:29:10,920 --> 00:29:13,799
perfect for apps built with dot Net, MAUI or Windows

561
00:29:13,880 --> 00:29:18,359
Universal Platform. Just upload your pdbs and ygun will enrich

562
00:29:18,400 --> 00:29:22,079
your stack traces with crucial details. Never miss a beat

563
00:29:22,079 --> 00:29:25,559
in your development cycle again. Let raygun take the hassle

564
00:29:25,599 --> 00:29:29,319
out of error tracking. Visit raygun dot com slash dot

565
00:29:29,400 --> 00:29:32,160
net rocks that's Reygun, r A y g u n

566
00:29:32,279 --> 00:29:35,559
dot com, slash dot ne e t r o c

567
00:29:35,720 --> 00:29:38,400
ks for your free fourteen day trial.

568
00:29:40,720 --> 00:29:42,720
Speaker 2: And we're back. It's dot net rocks. I'm Richard Campbell.

569
00:29:42,720 --> 00:29:45,839
That's Carl Franklin. You we're talking to Mattil de Malte

570
00:29:46,000 --> 00:29:50,440
about they challenge your geospatial data as well as how

571
00:29:50,480 --> 00:29:53,319
machine learning is helping out there, because you know, most

572
00:29:53,359 --> 00:29:56,319
of the time when I'm dealing with machine learning models,

573
00:29:57,200 --> 00:29:59,359
we're trying to get as much diverse data as possible

574
00:29:59,400 --> 00:30:02,279
for the training. Said, and you've just painted a really

575
00:30:02,319 --> 00:30:04,200
great case of where you don't want to do that

576
00:30:04,319 --> 00:30:08,000
because there's a lot of data that's irrelevant here, Like

577
00:30:08,039 --> 00:30:10,000
you really have to cut it down to just the

578
00:30:10,119 --> 00:30:14,079
populated areas, which is mostly coastal for Norway if I

579
00:30:14,160 --> 00:30:18,000
remember my geography at Norway. But even that would necessarily

580
00:30:18,000 --> 00:30:21,319
be a good criteria. You just have to You said

581
00:30:21,319 --> 00:30:23,640
it just before the break there meddild Does it have

582
00:30:23,680 --> 00:30:26,759
a building in it? Yeah, right, that's probably And I'm

583
00:30:26,759 --> 00:30:29,519
sure there's like wilderness huts out there somewhere that's like

584
00:30:29,799 --> 00:30:31,240
mostly forest, but there's a hut.

585
00:30:31,400 --> 00:30:35,400
Speaker 4: Yeah, we did tests in the beginning. Just have a

586
00:30:35,480 --> 00:30:38,039
rule that said we only want training data if there

587
00:30:38,200 --> 00:30:42,000
is at least five percent building within that tile, right,

588
00:30:42,039 --> 00:30:44,799
which works really well if you want to focus on

589
00:30:44,880 --> 00:30:49,359
detecting buildings. But what happened is that whenever the model

590
00:30:49,480 --> 00:30:53,599
saw areas that wasn't connected to a building nature that

591
00:30:53,680 --> 00:30:59,119
is not the typically surrounding buildings, it's falsely detected buildings.

592
00:31:00,039 --> 00:31:03,279
White spots of snow right was detected as a building.

593
00:31:03,279 --> 00:31:06,039
Speaker 2: Oops, like the face on Mars. Right, there's sh rock

594
00:31:06,160 --> 00:31:10,880
formations that could be building ish like, yeah, they could beloos, right,

595
00:31:13,400 --> 00:31:14,279
that's any thing.

596
00:31:14,319 --> 00:31:18,640
Speaker 1: But okay, well you know it's called there's snow, there's ice.

597
00:31:19,000 --> 00:31:20,480
Speaker 2: Yeah, somebody could make an igloo.

598
00:31:20,599 --> 00:31:22,799
Speaker 1: I don't think it would have having a street address

599
00:31:22,880 --> 00:31:25,000
though no mailbox.

600
00:31:26,440 --> 00:31:28,920
Speaker 2: I would also think that you've got lots of highways

601
00:31:28,960 --> 00:31:31,039
and things where there's not a lot around it for

602
00:31:31,200 --> 00:31:33,720
some stretch, like I've driven on those where it was

603
00:31:33,799 --> 00:31:36,039
just forest on both sides. I don't know that you

604
00:31:36,160 --> 00:31:39,039
need to map all the highways, but you know that

605
00:31:39,079 --> 00:31:40,799
would be something I'd want to discriminate for it. You're

606
00:31:40,799 --> 00:31:42,319
not going to get buildings from that or at.

607
00:31:42,279 --> 00:31:47,319
Speaker 1: Least land and water, you know, unused land or unoccupied

608
00:31:47,400 --> 00:31:49,400
land and water bodies of water.

609
00:31:49,759 --> 00:31:53,960
Speaker 2: Yeah, interesting, interesting shed of problems. So then, but the

610
00:31:54,000 --> 00:31:55,799
whole point here is to keep adding new data because

611
00:31:55,839 --> 00:31:57,440
they do want to look at things over time. Do

612
00:31:57,440 --> 00:31:59,440
you end up building like kind of time lapses to

613
00:31:59,480 --> 00:32:01,759
be able to look at a particular location, say here

614
00:32:01,839 --> 00:32:04,119
is several years and how it's evolving.

615
00:32:04,920 --> 00:32:07,920
Speaker 4: So what we've actually done is that we've created a

616
00:32:08,240 --> 00:32:12,039
system that creates training data while we're training the model.

617
00:32:12,559 --> 00:32:15,200
And what it does is that it just selects randomly

618
00:32:15,279 --> 00:32:18,759
within a set of rules. So we have some rules

619
00:32:18,839 --> 00:32:23,960
that is creating data for tiles with buildings. How a

620
00:32:24,000 --> 00:32:28,079
tile five twelve times five twelve pixels?

621
00:32:28,319 --> 00:32:32,799
Speaker 2: Okay, but and space that scale wise could be anything.

622
00:32:32,839 --> 00:32:39,200
Speaker 4: Then yeah, it's so the images have a resolution of

623
00:32:39,200 --> 00:32:44,240
ten centimeters between ten and thirty centimeters per pixel special resolution, and.

624
00:32:44,240 --> 00:32:46,440
Speaker 2: Then you're looking at five twelve by five twelve tile.

625
00:32:46,759 --> 00:32:50,680
I mean, that's just a big old jigsaw puzzle. Holy man, Like,

626
00:32:50,960 --> 00:32:54,880
do you have geospatial data associated with that shot? Right?

627
00:32:54,920 --> 00:32:56,599
You know roughly where it was taken?

628
00:32:56,839 --> 00:32:59,279
Speaker 4: Yes, exactly, So we have the coordinate for the lower

629
00:32:59,359 --> 00:33:02,200
left corner. You have the spatial resolution, which means that

630
00:33:02,240 --> 00:33:05,599
we can calculate where in the real world we are.

631
00:33:05,720 --> 00:33:08,400
So when we can detect the building within that image,

632
00:33:08,400 --> 00:33:10,240
we can figure out where that building is.

633
00:33:11,119 --> 00:33:14,759
Speaker 2: Now, wouldn't that geospatial tagging be the best thing for

634
00:33:14,839 --> 00:33:17,920
defining a set for a griven training set for a

635
00:33:17,960 --> 00:33:20,279
given area because you already know roughly where it is.

636
00:33:20,680 --> 00:33:23,319
Speaker 5: Yes, it is exactly. And what we have done to

637
00:33:23,440 --> 00:33:27,839
speed the process of picking the best data for us

638
00:33:28,319 --> 00:33:33,240
is that we have within five meters of every building

639
00:33:33,359 --> 00:33:36,720
in Norway, we have made these boundary boxes. Then we

640
00:33:36,839 --> 00:33:41,039
made an sqo light database that we have mapped all

641
00:33:41,079 --> 00:33:45,680
of these data points into, so that we know exactly

642
00:33:45,720 --> 00:33:47,599
where all the buildings in Norway are and we can

643
00:33:47,680 --> 00:33:51,000
just pick from those areas. Yeah, so it goes really fast.

644
00:33:51,079 --> 00:33:51,759
Speaker 1: Well that's great.

645
00:33:51,920 --> 00:33:54,880
Speaker 2: So you've derived a data set essentially based on this

646
00:33:54,960 --> 00:33:57,400
image that says, Okay, these are the buildings we know about.

647
00:33:57,839 --> 00:34:02,759
Speaker 1: Yeah, and then yes, about map reduce, that's exactly what

648
00:34:02,799 --> 00:34:03,240
that is.

649
00:34:05,799 --> 00:34:06,240
Speaker 5: Exactly.

650
00:34:07,960 --> 00:34:11,559
Speaker 2: Yeah, it's crazy set of boundary boxes. Now, I think

651
00:34:11,559 --> 00:34:15,519
the challenge with using the geospatial filter is if they've

652
00:34:15,519 --> 00:34:19,400
built out of the known range, you're going to miss it,

653
00:34:19,519 --> 00:34:21,800
like you kind of want to take a perimeter around

654
00:34:21,840 --> 00:34:24,559
that or look larger to say, where's a new set

655
00:34:24,559 --> 00:34:26,800
of buildings that we've just never mapped before. That's got

656
00:34:26,800 --> 00:34:28,159
to be kind of the hardest problem.

657
00:34:28,480 --> 00:34:31,480
Speaker 4: Yeah, So when we're looking for new buildings and actually

658
00:34:31,519 --> 00:34:36,159
analyzing their images, we analyze every image. Okay, so the

659
00:34:36,199 --> 00:34:39,400
selection within the building areas is only for creating the

660
00:34:39,440 --> 00:34:40,800
training data.

661
00:34:40,320 --> 00:34:42,760
Speaker 2: Hmm yeah, Oh I see. Now do you actually get

662
00:34:42,840 --> 00:34:44,920
images of all of Norway? I got to think the

663
00:34:45,039 --> 00:34:47,280
municipalities only map the area they're responsible for.

664
00:34:47,599 --> 00:34:49,519
Speaker 4: No, we have images for all of Norway because the

665
00:34:49,599 --> 00:34:53,199
municipalities are responsible for their areas. But then there's also

666
00:34:53,360 --> 00:34:59,320
the Norwegian MAPP being authority. They also have images for

667
00:34:59,360 --> 00:35:02,599
all of Norway with the lower resolution but still very

668
00:35:02,639 --> 00:35:03,199
good quality.

669
00:35:03,360 --> 00:35:08,360
Speaker 2: Right, So I presume you have provinces or states something

670
00:35:08,440 --> 00:35:11,599
like that, sub regions within the country that have an

671
00:35:11,639 --> 00:35:13,280
authority that's responsible for that.

672
00:35:13,559 --> 00:35:17,440
Speaker 5: Yes, we have what's called which will be a state.

673
00:35:17,480 --> 00:35:24,360
Speaker 2: I guess't you call me, but I guess this is

674
00:35:24,400 --> 00:35:25,920
part of the problem. Is I mean, this palady is

675
00:35:25,920 --> 00:35:28,639
going to give you very high resolution data relatively speaking,

676
00:35:28,800 --> 00:35:31,639
where the state level data will be lower resolution because

677
00:35:31,639 --> 00:35:34,400
it's mostly trees, so it doesn't need to be that

678
00:35:34,440 --> 00:35:39,079
precise exactly. Although we had a situation British Columbia with

679
00:35:39,079 --> 00:35:42,199
with the with the Pine beal where they were doing

680
00:35:42,239 --> 00:35:44,559
mapping showing that pine trees were being killed in the

681
00:35:44,599 --> 00:35:48,320
forest like in the wilderness. The other trees weren't affected,

682
00:35:48,400 --> 00:35:51,320
but they wanted because it increased the far fire risks.

683
00:35:51,400 --> 00:35:53,559
They're looking for where they're concentrations of pine trees that

684
00:35:53,559 --> 00:35:56,920
were dying because they burn really really well and create

685
00:35:56,960 --> 00:35:59,320
worse fires. And so they were doing all of this

686
00:35:59,400 --> 00:36:01,760
mapping and occasionally you got to see some of it

687
00:36:01,800 --> 00:36:04,079
where it's just like this whole slope is just pine

688
00:36:04,079 --> 00:36:06,719
trees and they're all red now, where all the other

689
00:36:06,800 --> 00:36:09,039
kinds of trees around it are still green. Like very

690
00:36:09,039 --> 00:36:13,159
interesting visualization data. Like we I'm such a geek on

691
00:36:13,159 --> 00:36:16,480
this stuff, Like let's get into multi spectral data where

692
00:36:16,480 --> 00:36:19,280
we could actually look at the stress levels of plants

693
00:36:19,480 --> 00:36:22,320
and you know, those different effects or even CO two

694
00:36:22,360 --> 00:36:24,960
emission and IR maps of all of this data to

695
00:36:24,960 --> 00:36:29,679
so what are the buildings that are environmentally inefficient or

696
00:36:29,760 --> 00:36:32,400
that have high emissions, Like there's a ton you can

697
00:36:32,440 --> 00:36:34,480
do with this data if you're scanning enough frequency.

698
00:36:34,639 --> 00:36:38,480
Speaker 4: Yeah, definitely. So we've also tested using the infrared images

699
00:36:38,559 --> 00:36:41,360
because we also have infted images for a lot of

700
00:36:41,400 --> 00:36:44,480
areas in Norway, and the interted images will give us

701
00:36:44,519 --> 00:36:48,320
different information than the regular RGB images. And we've also

702
00:36:48,440 --> 00:36:51,559
included high data. So this is one of the exciting

703
00:36:51,559 --> 00:36:53,639
things here. We have all of these different data and

704
00:36:53,679 --> 00:36:56,920
we can combine it into our models in different ways

705
00:36:57,000 --> 00:36:59,920
to detect different types of objects, and different data will

706
00:36:59,920 --> 00:37:01,599
be good for different types of objects.

707
00:37:01,719 --> 00:37:02,719
Speaker 2: How do you get the height data?

708
00:37:02,800 --> 00:37:07,360
Speaker 4: It's also collected for Norway by the I think it's

709
00:37:07,400 --> 00:37:09,079
also the mapping authory, the.

710
00:37:09,039 --> 00:37:12,760
Speaker 2: Vector stuff, so they must have something that they're pinging

711
00:37:12,800 --> 00:37:14,639
the how far they offer on the ground at any

712
00:37:14,639 --> 00:37:16,880
given point, Like, are they actually giving you the heights

713
00:37:16,920 --> 00:37:19,679
of different buildings? That to me would be astonishing.

714
00:37:20,079 --> 00:37:24,079
Speaker 4: Yeah, it's height for different Yeah, the point clouds.

715
00:37:24,360 --> 00:37:28,840
Speaker 5: Okay, it's very very accurate. Yeah, very cool to look at.

716
00:37:29,360 --> 00:37:32,119
Speaker 2: Is the height data specific to a tile or is

717
00:37:32,159 --> 00:37:34,119
it or is there different height data within the tile?

718
00:37:34,360 --> 00:37:37,360
Speaker 4: Different within the tile. It's also very higher resolution.

719
00:37:37,159 --> 00:37:40,480
Speaker 1: So per building, basically we'll be higher than that higher.

720
00:37:40,599 --> 00:37:42,760
Speaker 4: Yeah, it's many points for one building.

721
00:37:42,880 --> 00:37:45,480
Speaker 2: Yeah. Yeah, sure, if you have a if you have

722
00:37:45,519 --> 00:37:49,079
a height data per ten centimeter pixel, you know you're

723
00:37:49,079 --> 00:37:51,320
going to be able to map out a rooftop. You

724
00:37:51,719 --> 00:37:57,400
be able to extinguish individual like an air conditioner sitting

725
00:37:57,440 --> 00:37:59,039
on a roof would have a different height from the

726
00:37:59,079 --> 00:37:59,639
rest of the room.

727
00:38:00,199 --> 00:38:01,880
Speaker 1: Yeah, or chimney or something else.

728
00:38:02,239 --> 00:38:04,360
Speaker 4: Yeah, yeah, definitely if you look at the height data,

729
00:38:04,400 --> 00:38:08,199
you can definitely see what kind of areas you're looking at. Crazy,

730
00:38:08,360 --> 00:38:11,280
it's very accurate. Yeah, and it helps us to differentiate,

731
00:38:11,440 --> 00:38:15,199
for example, terrace from an actual building, right.

732
00:38:15,840 --> 00:38:18,400
Speaker 2: I was just thinking it's easier to buildings have a

733
00:38:18,440 --> 00:38:23,280
different height profile than normal terrain does, so it might

734
00:38:23,320 --> 00:38:25,639
be a good way to say that's probably a building

735
00:38:25,639 --> 00:38:28,239
because it's too uniform or it has a you know,

736
00:38:28,360 --> 00:38:31,920
consistent slope like things that only humans would do. So

737
00:38:31,960 --> 00:38:34,800
it's actually not a bad building detector. Even if the image,

738
00:38:35,000 --> 00:38:37,159
the visual image doesn't nestually show it up. The height

739
00:38:37,199 --> 00:38:39,480
data could really trigger you on saying that looks like

740
00:38:39,519 --> 00:38:40,079
a structure.

741
00:38:40,239 --> 00:38:42,760
Speaker 1: Yeah, So are there other things besides like patches of

742
00:38:42,800 --> 00:38:46,360
snow that have confounded the algorithm or whatever?

743
00:38:46,679 --> 00:38:52,159
Speaker 5: The detection we also found that we also found Atlantis. Oh,

744
00:38:52,360 --> 00:38:55,039
or there's it says that there's buildings out in the water.

745
00:38:55,360 --> 00:39:02,360
Speaker 1: Yeah, you found Atlantis, yes, yeah, because it's in the

746
00:39:02,400 --> 00:39:03,039
training data.

747
00:39:03,199 --> 00:39:06,679
Speaker 5: In the beginning, there wasn't really enough data with water,

748
00:39:07,199 --> 00:39:10,079
so it thought that patches in the water was also buildings.

749
00:39:10,239 --> 00:39:13,639
So that's where a lentiss that's in Norway if everyone

750
00:39:13,719 --> 00:39:15,599
was wondering, Yeah, that's.

751
00:39:15,440 --> 00:39:18,760
Speaker 2: Why we haven't been able to find it. Talking about

752
00:39:18,760 --> 00:39:20,960
the Mediterranean, he had no idea it was a north

753
00:39:21,000 --> 00:39:21,920
Sea the whole time.

754
00:39:23,039 --> 00:39:24,119
Speaker 5: Wow, exactly.

755
00:39:25,079 --> 00:39:26,639
Speaker 2: Yeah, yeah, the height data is not going to help

756
00:39:26,639 --> 00:39:29,360
you there. The ocean is a pretty consistent hype. But yeah,

757
00:39:29,400 --> 00:39:31,480
but yeah, you could easily have shapes in the water

758
00:39:31,559 --> 00:39:33,079
that could be mistaken for buildings.

759
00:39:33,800 --> 00:39:35,039
Speaker 5: Yeah.

760
00:39:34,360 --> 00:39:38,079
Speaker 2: Yeah, I mean we're almost anthropomorphizing the software's ability to

761
00:39:38,079 --> 00:39:40,719
recognize images, right, like it's making the states of work

762
00:39:40,880 --> 00:39:45,119
is just not a good enough training set. Although yeah,

763
00:39:45,119 --> 00:39:47,320
I don't know how you even filter for that. You

764
00:39:47,519 --> 00:39:49,840
do you give it a set of things in the

765
00:39:49,880 --> 00:39:52,519
water that are not buildings to help it? Do you

766
00:39:52,519 --> 00:39:55,199
can not to avoid that? Yeah?

767
00:39:55,239 --> 00:39:55,679
Speaker 5: Exactly?

768
00:39:55,760 --> 00:39:57,519
Speaker 2: Can you do that negative option? Or you only train

769
00:39:57,599 --> 00:39:59,760
it towards what it should find as a building.

770
00:40:00,039 --> 00:40:02,840
Speaker 5: Oh, we have to we have to also include because

771
00:40:02,880 --> 00:40:05,000
when we started out, we only did buildings, and in

772
00:40:05,559 --> 00:40:08,559
the area with high concentration of buildings, it worked really well,

773
00:40:09,039 --> 00:40:12,079
but then when we did it in a more rural area,

774
00:40:12,719 --> 00:40:14,639
it didn't work so well. So then we also now

775
00:40:14,679 --> 00:40:17,360
have to include some water and forests and snow and

776
00:40:17,360 --> 00:40:18,239
all that kind of stuff.

777
00:40:18,679 --> 00:40:21,519
Speaker 2: And so your training to actually say that is objects

778
00:40:21,559 --> 00:40:24,079
in the water, so not buildings.

779
00:40:23,800 --> 00:40:24,920
Speaker 5: Yes, exactly.

780
00:40:25,000 --> 00:40:27,480
Speaker 4: Yeah, we're saying, yeah, it's it's only binary. So we

781
00:40:27,519 --> 00:40:30,000
say building or not building, and we make sure that

782
00:40:30,159 --> 00:40:32,800
there are images of water in the data set that

783
00:40:32,920 --> 00:40:34,320
is labeled as not building.

784
00:40:34,400 --> 00:40:36,199
Speaker 2: It's not building. Okay, yeah.

785
00:40:36,239 --> 00:40:38,159
Speaker 4: But one thing that we've done to make sure like

786
00:40:38,559 --> 00:40:40,800
you can kind of imagine that you need some water,

787
00:40:40,920 --> 00:40:43,519
you need some forests, you need some mountain, you need

788
00:40:43,559 --> 00:40:46,119
some building, and this will be a representation of reality.

789
00:40:46,199 --> 00:40:49,079
But it's really difficult to know how much of the

790
00:40:49,119 --> 00:40:52,519
different types of data that the model leads. So what

791
00:40:52,559 --> 00:40:56,480
we've done is that we start out with with a

792
00:40:56,480 --> 00:40:59,599
set of rules for how much the data the model

793
00:40:59,599 --> 00:41:02,800
should have for each category, but then we also let

794
00:41:02,840 --> 00:41:06,760
the model find the data itself. So while we're training

795
00:41:06,760 --> 00:41:09,920
the model, we're testing different images to see how well

796
00:41:09,960 --> 00:41:13,320
the model is performing, and if the model performs badly,

797
00:41:13,679 --> 00:41:16,280
we add that data to the training data set.

798
00:41:16,800 --> 00:41:19,599
Speaker 2: Right, Okay, something I understand where you have L forty's

799
00:41:19,599 --> 00:41:22,000
because you're going to retrain a lot. You have several

800
00:41:22,119 --> 00:41:25,360
different sets of building not building, and you're going to

801
00:41:25,400 --> 00:41:28,119
put different weights on them and retrain and retrain and

802
00:41:28,159 --> 00:41:30,000
see I mean I got imagine then you get Then

803
00:41:30,039 --> 00:41:32,719
you run it through a functions a functional data set

804
00:41:32,760 --> 00:41:34,920
and see how much is wrong and are there collections

805
00:41:34,920 --> 00:41:38,199
that are wrong? But you could then tell you we

806
00:41:38,199 --> 00:41:43,360
should be harder on identifying water structures as not building. Yeah,

807
00:41:43,400 --> 00:41:45,440
at some point it's going to start ignoring real buildings.

808
00:41:45,559 --> 00:41:49,320
Speaker 1: Yeah, that's a nice feedback loop exactly.

809
00:41:49,400 --> 00:41:52,679
Speaker 4: And that actually happened with the snow example because one

810
00:41:52,719 --> 00:41:56,199
of the reasons that snow can look similar to a

811
00:41:56,199 --> 00:41:59,119
building is that we have greenhouses, and greenhouses can have

812
00:41:59,159 --> 00:42:02,840
a lot of reflection, which means that it looks white right,

813
00:42:03,000 --> 00:42:06,679
similar to snow. So when we added more pictures of snow,

814
00:42:06,760 --> 00:42:12,400
we suddenly had greenhouses that were not correct. This is

815
00:42:12,440 --> 00:42:14,199
always a difficult part great problem.

816
00:42:14,239 --> 00:42:18,639
Speaker 1: What is the sauna to domicile ratio.

817
00:42:20,440 --> 00:42:22,239
Speaker 5: We wish we had a number for that one. We

818
00:42:22,280 --> 00:42:22,800
wish we had a.

819
00:42:22,840 --> 00:42:25,639
Speaker 2: Number for that. One of the reasons I brought up

820
00:42:25,639 --> 00:42:27,960
the solar panel thing is I did the the Future

821
00:42:28,000 --> 00:42:31,159
of Energy talk in Norway and I could not find

822
00:42:31,199 --> 00:42:35,079
good data on residential solar because there's enough of it

823
00:42:35,119 --> 00:42:39,800
that it's just not well mapped right and mostly well

824
00:42:39,840 --> 00:42:42,639
And you know, it's interesting that Norway didn't have commercial

825
00:42:42,679 --> 00:42:45,920
solar being land used for solar panels, because anywhere you

826
00:42:45,960 --> 00:42:47,800
have flat land you have better uses for it than

827
00:42:47,840 --> 00:42:51,239
solar panels. But tops of buildings are covered in solar

828
00:42:51,239 --> 00:42:54,760
panels because it's good use for that. But again there's

829
00:42:54,800 --> 00:42:57,239
not The government did not have good data on just

830
00:42:57,280 --> 00:43:01,519
how much you know, pseudo commercial rooftop solar there was,

831
00:43:01,639 --> 00:43:03,800
so you know, I'd like you to answer that question

832
00:43:03,840 --> 00:43:05,679
for me. Not that I need to answer ext it anymore,

833
00:43:05,719 --> 00:43:08,480
but it was one of those things it's like, it's

834
00:43:08,480 --> 00:43:10,519
a great question to ask, and in theory, you know,

835
00:43:10,599 --> 00:43:12,679
you could build a training set around can we detect

836
00:43:12,719 --> 00:43:16,880
solar panels from this data? And then you know, somebody's

837
00:43:16,880 --> 00:43:18,880
willing to pay for the compute time to figure that

838
00:43:18,920 --> 00:43:20,719
out and maybe get a map of the of the

839
00:43:20,760 --> 00:43:22,039
reality of what's out there.

840
00:43:22,599 --> 00:43:25,159
Speaker 4: Yeah, and one of our colleagues is actually working on

841
00:43:25,199 --> 00:43:29,159
a system that can figure out which areas are good

842
00:43:29,239 --> 00:43:32,159
for having solar panels in Norway based on all our

843
00:43:32,239 --> 00:43:35,400
geographical data. Yeah, so if we combine that with where

844
00:43:35,440 --> 00:43:37,840
there are existing solar panels, you can find really good

845
00:43:38,159 --> 00:43:38,800
good areas.

846
00:43:39,320 --> 00:43:43,039
Speaker 2: Yeah, lots of possibilities there for you know, utilize attity.

847
00:43:43,079 --> 00:43:44,519
You know, it makes sense for you to go to

848
00:43:44,599 --> 00:43:46,920
a building that's there that you know about, it doesn't

849
00:43:46,920 --> 00:43:48,719
have solars on the roof and go. You would get

850
00:43:48,719 --> 00:43:50,920
good results from putting solar panels up here. We've got

851
00:43:50,960 --> 00:43:52,119
a data set that shows that.

852
00:43:52,320 --> 00:43:52,480
Speaker 5: Yeah.

853
00:43:52,559 --> 00:43:54,719
Speaker 2: Yeah, it's not always an obvious thing, but it speaks

854
00:43:54,760 --> 00:43:57,000
to the power of the data just making it easier

855
00:43:57,039 --> 00:44:00,360
to manage because there's it's a lot of information. Yeah,

856
00:44:00,480 --> 00:44:02,400
I'd like to decomposition model. You can take all these

857
00:44:02,440 --> 00:44:06,039
different sources of data and break it into tiles and

858
00:44:06,079 --> 00:44:08,079
then map it into a common system.

859
00:44:08,199 --> 00:44:12,760
Speaker 1: Do you foresee having to upgrade your in house systems dramatically?

860
00:44:13,239 --> 00:44:15,360
Are you growing that much? And do you have a

861
00:44:15,400 --> 00:44:18,199
plan to grow as your requirements grown?

862
00:44:18,440 --> 00:44:23,639
Speaker 5: I mean we're definitely growing, but I'd say that this

863
00:44:23,679 --> 00:44:26,840
is maybe like one project that we're working on, you know,

864
00:44:26,960 --> 00:44:30,599
it's continuously training, continuously getting better. We're also in the

865
00:44:30,599 --> 00:44:35,440
meantime doing a lot of other projects. So yeah, it's

866
00:44:35,480 --> 00:44:38,400
mostly those that are that are in line up growing.

867
00:44:38,440 --> 00:44:42,360
So we won't buy any more GPUs okay anytime soon?

868
00:44:42,480 --> 00:44:42,840
I think.

869
00:44:43,719 --> 00:44:45,320
Speaker 2: I guess the question is like how long are you

870
00:44:45,360 --> 00:44:47,880
waiting to finish a training set these days? Like when

871
00:44:47,960 --> 00:44:50,119
is it long enough that buying another one would make sense?

872
00:44:50,599 --> 00:44:52,000
Speaker 5: How long is the training now?

873
00:44:52,119 --> 00:44:54,880
Speaker 2: Is it's yeah? How long is a training run taken

874
00:44:55,000 --> 00:44:55,440
right now?

875
00:44:55,559 --> 00:44:55,800
Speaker 5: Yeah?

876
00:44:55,840 --> 00:44:58,360
Speaker 2: It takes on that parallel L forties.

877
00:44:58,719 --> 00:45:03,119
Speaker 4: Yeah, when training a new new data from scratch, it

878
00:45:03,239 --> 00:45:06,239
would take between two and three weeks for it to

879
00:45:06,320 --> 00:45:06,800
be good.

880
00:45:07,199 --> 00:45:11,239
Speaker 2: Wow, yeah that's a long time. Yeah right, Like so

881
00:45:11,320 --> 00:45:14,320
if you had four L forties, would it be a week?

882
00:45:15,119 --> 00:45:16,320
Speaker 5: Yeah? In theory?

883
00:45:16,599 --> 00:45:18,400
Speaker 1: Or is it just the fact that you can wait?

884
00:45:19,039 --> 00:45:20,920
Is it just the fact that you can wait for

885
00:45:20,960 --> 00:45:24,880
it and nobody's knocking on the door saying hey, you know, yeah, yeah.

886
00:45:24,679 --> 00:45:27,079
Speaker 4: We can It's it's okay for us to wait three

887
00:45:27,159 --> 00:45:30,320
four weeks for this because we have a model that

888
00:45:30,400 --> 00:45:33,559
is good, and then we're testing different things and we're

889
00:45:33,599 --> 00:45:36,440
not sitting waiting and doing nothing. We have different projects

890
00:45:37,000 --> 00:45:38,119
running in the background.

891
00:45:38,400 --> 00:45:40,559
Speaker 2: But it sounds like those two L forties are probably

892
00:45:40,639 --> 00:45:43,960
running at their limit most of the time. Yeah, like

893
00:45:44,000 --> 00:45:45,480
they're they're saturated. Y.

894
00:45:45,719 --> 00:45:49,800
Speaker 1: Yeah, So are your other projects also dealing with geospatial

895
00:45:49,880 --> 00:45:53,239
data in these models or or you said this is

896
00:45:53,320 --> 00:45:56,039
just one project. Are there any other projects that you're

897
00:45:56,039 --> 00:45:57,199
doing they're totally different.

898
00:45:57,360 --> 00:46:01,159
Speaker 5: Yeah, definitely, we have a bunch of projects. So the

899
00:46:01,360 --> 00:46:05,400
biggest one we're doing right now is is probably trying

900
00:46:05,480 --> 00:46:11,559
to make sense of Norwegian sonal plants and these sonal plants.

901
00:46:11,599 --> 00:46:12,960
You know, I don't know how it is in the

902
00:46:13,679 --> 00:46:17,679
over in the States, but in Norway you have sonal

903
00:46:17,719 --> 00:46:21,760
plants and that's all. The municipal municipalities have their own

904
00:46:21,800 --> 00:46:25,679
sonal plants and they say something about how how the

905
00:46:25,880 --> 00:46:30,239
land in that municipality should be used so it can see.

906
00:46:30,280 --> 00:46:34,679
Speaker 2: Right, so the zone for residential, zone for commercial, zone

907
00:46:34,719 --> 00:46:38,159
for industrial. Yeah, and that's all you're allowed to use.

908
00:46:38,199 --> 00:46:40,840
I mean, that's a that's a common practice, right. You

909
00:46:40,920 --> 00:46:44,159
generally don't want a chemical plant beside the residential area.

910
00:46:44,800 --> 00:46:45,920
You know, those kinds of things.

911
00:46:46,000 --> 00:46:49,039
Speaker 5: Yeah, and they're they're very detailed, and it could be anything

912
00:46:49,199 --> 00:46:52,280
like oh, here you cannot build a building that's higher

913
00:46:52,320 --> 00:46:56,760
than five meters and over here you can't build a road.

914
00:46:57,000 --> 00:47:00,039
It's illegal. You know, all these kinds of things. So

915
00:47:00,360 --> 00:47:03,559
what we're doing, is that what just like everyone else,

916
00:47:04,079 --> 00:47:08,119
using the large language models to try to to make

917
00:47:08,199 --> 00:47:09,199
sense of these plants?

918
00:47:09,280 --> 00:47:13,079
Speaker 1: Yeah, okay, And is that using a geospatial data Yeah, yes,

919
00:47:14,559 --> 00:47:17,639
you can go. So so everything start of that you

920
00:47:17,679 --> 00:47:19,039
do revolves around this data.

921
00:47:19,199 --> 00:47:23,440
Speaker 4: Yeah, usually it sounds like yeah, yeah. So the sonal

922
00:47:23,480 --> 00:47:26,039
plans have two parts. You have the document, which can

923
00:47:26,079 --> 00:47:28,519
be which can be up to hundreds of pages with

924
00:47:28,719 --> 00:47:33,079
really difficult texts to understand. And then you have a

925
00:47:33,119 --> 00:47:36,239
part that it's the map that tells us where what

926
00:47:36,719 --> 00:47:42,920
part of Norway it's the sonal pen is covering. And

927
00:47:42,960 --> 00:47:45,480
that map usually has a lot of information that is

928
00:47:45,519 --> 00:47:50,760
not in the text document. So we combine information from

929
00:47:50,800 --> 00:47:53,760
the map and the text document together in an LM

930
00:47:54,000 --> 00:47:57,639
to try to make to understand the content and to

931
00:47:57,679 --> 00:48:01,599
figure out which part of the document specific for a property.

932
00:48:01,719 --> 00:48:02,199
Speaker 1: That's good.

933
00:48:02,719 --> 00:48:04,800
Speaker 2: So you're using a large language model in that so

934
00:48:04,840 --> 00:48:07,920
that people can use like a text expression to put

935
00:48:07,960 --> 00:48:08,760
the affection the data.

936
00:48:09,400 --> 00:48:12,519
Speaker 5: Yeah, exactly. So, you know, as much as I don't

937
00:48:12,559 --> 00:48:15,119
know personally, when I see a chet bot, you know,

938
00:48:15,519 --> 00:48:18,159
I don't really like it that much at least sites.

939
00:48:18,559 --> 00:48:22,079
But yeah, so now I'm sitting here and making making

940
00:48:22,119 --> 00:48:24,159
a chet box because I want.

941
00:48:24,719 --> 00:48:25,079
Speaker 1: I like that.

942
00:48:25,119 --> 00:48:27,000
Speaker 2: You guys are the old school AI. You were doing

943
00:48:27,039 --> 00:48:30,960
it before it was cool. But no, you've been infected

944
00:48:30,960 --> 00:48:33,320
by the ll M monster too, right, It's just sort

945
00:48:33,320 --> 00:48:35,719
of consumed all of us the past two years.

946
00:48:36,079 --> 00:48:41,920
Speaker 1: I especially hate happy chat bots, you know, overly enthusiastically

947
00:48:42,199 --> 00:48:44,119
happy chat bots.

948
00:48:44,039 --> 00:48:46,159
Speaker 5: Will will make ours a little bit meaner.

949
00:48:46,239 --> 00:48:51,960
Speaker 1: Yeah, actually, you will probably get better usage if you

950
00:48:52,000 --> 00:48:54,280
throw in snarky comments every once in a while and

951
00:48:55,400 --> 00:48:57,079
even little insults, you know.

952
00:48:57,320 --> 00:49:01,400
Speaker 2: Yeah, John Rickles.

953
00:49:01,119 --> 00:49:08,920
Speaker 5: Mode, you know, like, we'll make one now for sure. Yeah.

954
00:49:09,199 --> 00:49:11,519
Speaker 1: When somebody says that data is wrong, you could say

955
00:49:11,559 --> 00:49:12,599
your face is wrong.

956
00:49:17,039 --> 00:49:21,280
Speaker 5: Yeah, for sure, we'll look into that. I think it's

957
00:49:21,280 --> 00:49:22,440
important to.

958
00:49:22,360 --> 00:49:24,039
Speaker 1: Make it a little bit a little more exciting to

959
00:49:24,119 --> 00:49:24,679
use anyway.

960
00:49:24,920 --> 00:49:26,239
Speaker 2: Yeah right, right.

961
00:49:26,559 --> 00:49:31,000
Speaker 1: So what's next? What's in your inbox? You guys? Matilda?

962
00:49:31,119 --> 00:49:34,480
What's next for you? Project wise or anything?

963
00:49:35,559 --> 00:49:38,320
Speaker 4: Well, we've been testing a lot of a lot of

964
00:49:38,360 --> 00:49:42,519
different ideas with our data and our products. And one

965
00:49:42,559 --> 00:49:45,119
thing we do is that we invite to different product

966
00:49:45,119 --> 00:49:48,239
teams to have hackems with us, right, and we tried

967
00:49:48,280 --> 00:49:53,000
to figure out how AI can fit into their products.

968
00:49:53,079 --> 00:49:55,880
And one of the hack films that was really fun

969
00:49:56,400 --> 00:50:00,679
was one we did together with our Mono Repo team.

970
00:50:01,000 --> 00:50:05,199
So we have a platform for running our front end applications.

971
00:50:05,920 --> 00:50:08,679
So we have all of our three point fourteen products

972
00:50:08,679 --> 00:50:15,639
for developer in one big monory po and we try

973
00:50:15,639 --> 00:50:18,400
to figure out how AI can help developers when they're

974
00:50:18,920 --> 00:50:22,519
coding in that big monory pot. And we figured out

975
00:50:22,559 --> 00:50:27,360
that you're now actually allowed to create a visual studio

976
00:50:27,440 --> 00:50:31,320
code extension on top of the GitHub co pilot extension

977
00:50:32,159 --> 00:50:35,199
that allows you to build your own functionality into the

978
00:50:35,239 --> 00:50:38,440
gitub co pilot chat wow, And we've had a lot

979
00:50:38,440 --> 00:50:39,920
of fun with that.

980
00:50:39,920 --> 00:50:42,559
Speaker 1: That sounds fun, Yeah, we've added.

981
00:50:44,039 --> 00:50:47,079
Speaker 4: Yeah, we've added our own functionality into that where you

982
00:50:47,119 --> 00:50:54,719
can chat with specific nud Cutch documentation. You can add

983
00:50:54,760 --> 00:50:59,760
a support a chat to our chat room directly after

984
00:51:00,000 --> 00:51:03,880
if you don't get your answer, you can summarize your

985
00:51:04,000 --> 00:51:07,199
chat and directly have it posted to our chat room.

986
00:51:07,480 --> 00:51:08,159
Stuff like that.

987
00:51:08,400 --> 00:51:11,000
Speaker 1: Cool, how about you melted with's in your inbox?

988
00:51:11,519 --> 00:51:15,360
Speaker 5: Well, it's going to be making some new personalities for

989
00:51:15,519 --> 00:51:18,119
the chat bob. That's probably the first thing I'm.

990
00:51:17,960 --> 00:51:19,840
Speaker 2: Going to do.

991
00:51:22,599 --> 00:51:27,880
Speaker 5: Your face, No, but it is trying to figure out

992
00:51:28,039 --> 00:51:31,199
if this actually is going to work, you know, these

993
00:51:31,239 --> 00:51:35,320
tonal plans and finishing you know that that product, and

994
00:51:36,239 --> 00:51:39,480
trying to show it to our users and see if

995
00:51:39,480 --> 00:51:44,159
they're happy with it, because it's really it's really difficult

996
00:51:44,960 --> 00:51:49,360
to like prompt these correctly and try to to make

997
00:51:49,440 --> 00:51:54,559
the I assume most people these days are familiar with

998
00:51:54,760 --> 00:51:57,800
rag architecture, I don't know, but trying to optimize the

999
00:51:57,840 --> 00:52:01,079
searching part and the prompting part and stuff like that.

1000
00:52:02,239 --> 00:52:05,480
So there's a lot of tricks and stuff with that

1001
00:52:05,519 --> 00:52:07,639
these days for sure. And then we're also you know,

1002
00:52:07,679 --> 00:52:11,760
looking into as I mentioned, you know, chatbots, not you

1003
00:52:11,800 --> 00:52:14,239
know that fun. It's not the best thing in the world.

1004
00:52:14,239 --> 00:52:16,840
So we're trying to look at how we can parse

1005
00:52:16,920 --> 00:52:19,719
these sonal plants in other ways, such as you know,

1006
00:52:19,920 --> 00:52:26,480
making summarizing pages and trying to just extract useful information

1007
00:52:27,320 --> 00:52:32,719
from these documents. Depending on what property you are on.

1008
00:52:33,039 --> 00:52:36,960
Speaker 1: Yeah, very good. Well, I wish you good luck, rich

1009
00:52:37,000 --> 00:52:38,679
and I wish you good luck in the future. And

1010
00:52:38,760 --> 00:52:41,440
you know, if there's anything we're talking about, come on

1011
00:52:41,599 --> 00:52:44,039
back at a later time and we'll do another show.

1012
00:52:44,159 --> 00:52:47,119
Speaker 2: Yeah, customizing customer and get HELB copilot. Sounds like a

1013
00:52:47,159 --> 00:52:47,719
cool topic.

1014
00:52:47,840 --> 00:52:48,960
Speaker 1: Sounds like a great topic.

1015
00:52:49,079 --> 00:52:49,719
Speaker 2: Yeah for sure.

1016
00:52:51,079 --> 00:52:53,599
Speaker 1: All right, thanks again, all right, thank you guys, Thanks

1017
00:52:53,599 --> 00:52:56,360
for having us, Thanks for having us. You bet, and

1018
00:52:56,440 --> 00:53:20,199
we'll see you next time on dot net rocks. Dot

1019
00:53:20,239 --> 00:53:22,880
net Rocks is brought to you by Franklin's Net and

1020
00:53:22,960 --> 00:53:26,880
produced by Pop Studios, a full service audio, video and

1021
00:53:26,960 --> 00:53:31,239
post production facility located physically in New London, Connecticut, and

1022
00:53:31,320 --> 00:53:35,960
of course in the cloud online at pwop dot com.

1023
00:53:36,159 --> 00:53:38,280
Visit our website at d O T N E t

1024
00:53:38,519 --> 00:53:42,519
R O c k S dot com for RSS feeds, downloads,

1025
00:53:42,679 --> 00:53:46,360
mobile apps, comments, and access to the full archives going

1026
00:53:46,400 --> 00:53:49,800
back to show number one, recorded in September two thousand

1027
00:53:49,800 --> 00:53:52,480
and two. And make sure you check out our sponsors.

1028
00:53:52,599 --> 00:53:55,639
They keep us in business. Now go write some code,

1029
00:53:55,960 --> 00:53:56,760
see you next time.

1030
00:53:57,800 --> 00:53:58,159
Speaker 4: Got you.

1031
00:54:00,519 --> 00:54:06,280
Speaker 1: To see the summer time like me his home and.

1032
00:54:06,480 --> 00:54:08,000
Speaker 2: My Texas in line.

1033
00:54:08,440 --> 00:54:08,920
Speaker 3: Dall

