Three-D Change Detection: A QGIS Plugin with Python 3
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43385 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Nichtkommutative Jordan-AlgebraPresentation of a groupDigitizingEndliche ModelltheorieMathematicsMultiplication signMixed realityGoodness of fitStudent's t-testProjective planeMereologyGeomaticsCone penetration testPlug-in (computing)
00:54
MathematicsPlug-in (computing)Nichtkommutative Jordan-AlgebraMathematicsPlug-in (computing)BitComputer programmingComputer animation
01:19
GeomaticsComputer programmingStudent's t-testUniverse (mathematics)Social classUniqueness quantificationComputer animation
02:09
FreewareImage registrationData managementLecture/Conference
02:28
Image registrationFreewareFreewareImage registrationChannel capacityData managementPlug-in (computing)Mathematics
02:57
Home pageRepository (publishing)CodeInformationTemporal logicMathematicsRaster graphicsDigital signalVisualization (computer graphics)Error messageNichtkommutative Jordan-AlgebraRevision controlVotingMathematicsRepository (publishing)CASE <Informatik>Error messageFunctional (mathematics)Physical systemInstance (computer science)AdditionSatelliteXML
03:41
SatelliteDigital signalComputer simulationSurfaceSatelliteAreaSoftware developerFile viewerPixelDistancePhysical systemDiagramComputer animation
04:14
Process (computing)Digital signalEndliche ModelltheorieInformationSurfaceSource codeError messageDirection (geometry)Service (economics)SummierbarkeitCASE <Informatik>Execution unitOpen sourceProcess (computing)MereologyExpert systemMathematicsError messageDigitizingEndliche ModelltheorieComputer animation
04:56
WikiWeb pageAreaProcess (computing)MathematicsRaster graphicsMaxima and minimaThresholding (image processing)Observational studyEstimationError messageOnline helpNetwork topologyDemonEstimatorUser interfacePlug-in (computing)SimulationPhysical systemBuildingError messagePoint (geometry)Spline (mathematics)MathematicsWikiRaster graphicsOnline helpMaxima and minimaShape (magazine)Computer fileNoise (electronics)Thresholding (image processing)Auditory maskingFunctional (mathematics)PixelObservational studyProjective planeAreaProcess (computing)Multiplication signCartesian coordinate systemComputer configurationFocus (optics)MappingOffice suitePoint cloudHome pageDigital photographyInstance (computer science)Lecture/ConferenceComputer animation
06:35
Content (media)Table (information)Software testingOnline helpFunction (mathematics)AreaMappingMathematicsBuildingFunctional (mathematics)Auditory maskingBitInstance (computer science)Function (mathematics)Graphical user interfacePlug-in (computing)Process (computing)
07:09
Auditory maskingBitPhysical system
07:29
Error messageComputer virusMedical imagingForm (programming)ConsistencyOrder (biology)Computer programmingNetwork topologyImage resolutionReflection (mathematics)QuicksortAreaCASE <Informatik>Interpreter (computing)Computer animationLecture/Conference
08:26
SmoothingFigurate numberCalculationMathematicsReflection (mathematics)Error messageDegree (graph theory)
09:02
Price indexQuantilePoint (geometry)Machine visionDifferent (Kate Ryan album)Negative numberSubject indexingRootOnline helpSmoothingCalculationPattern recognitionConnected spaceAreaError messageBlogBuildingMathematicsRevision controlMultiplication signCuboidMappingBitSummierbarkeitAlgorithmContinuous functionLimit (category theory)Cellular automatonSoftwareTheory of relativity
11:21
Error messageCASE <Informatik>Error messageCASE <Informatik>AreaMathematicsBuildingLevel (video gaming)AlgorithmCuboidConfidence intervalComputer animation
12:14
InformationAreaImage resolutionSampling (statistics)Point (geometry)Vector spaceEndomorphismenmonoidLecture/Conference
12:46
InformationDegree (graph theory)DialectLine (geometry)Thresholding (image processing)Slide rulePairwise comparisonDifferent (Kate Ryan album)CASE <Informatik>Computer animation
13:37
Amicable numbersMaxima and minimaInformation and communications technologyBraidEuler anglesDrum memoryLevel (video gaming)MiniDiscAreaDirection (geometry)MathematicsBuildingPlanningFunction (mathematics)Demo (music)View (database)Raster graphicsGraph coloringAuditory maskingDialectComputer animation
14:37
ModemGreen's functionRankingError messageSample (statistics)Process (computing)Revision controlFunction (mathematics)BuildingPlanningFunctional (mathematics)Denial-of-service attackGoodness of fitCASE <Informatik>Cartesian coordinate systemFocus (optics)Matching (graph theory)UsabilityType theoryMathematicsBitImage resolutionProcess (computing)Revision controlMultiplication signCodeError messagePlug-in (computing)MappingRepository (publishing)TwitterProgram flowchart
15:52
CodeFunctional (mathematics)CASE <Informatik>Latent heatVotingProcess (computing)View (database)Computer animation
16:35
SatelliteDirection (geometry)Spectrum (functional analysis)Physical systemSquare numberOpen sourcePoint (geometry)Plug-in (computing)CollaborationismPresentation of a groupPairwise comparisonError messageMathematics
17:39
Point (geometry)SurfaceError messageProcess (computing)SoftwareSatellitePoint cloudDigital photographyThresholding (image processing)InterpolationCalculationData structureMereologyMathematicsInterpreter (computing)40 (number)Boss CorporationQuicksortComputer programmingNetwork topologyTotal S.A.Meeting/Interview
20:00
Decision theoryMathematicsInterpolationAreaMultiplication signAnnihilator (ring theory)
20:27
Raster graphicsMultiplication signProcess (computing)CASE <Informatik>Square numberFunctional (mathematics)Extension (kinesiology)Plug-in (computing)Module (mathematics)Function (mathematics)Arithmetic meanPoint (geometry)Limit (category theory)Address spaceShape (magazine)
Transcript: English(auto-generated)
00:07
So the next presentation will be in 3D change detection on digital elevation models and will be done by three people, Jordan Bates and Muhammad and Tanmoy.
00:23
And we have met each other at various places before, like FOSFOTI in Tanzania and in Kiyoko Isio's conference, you know, corona already, so we see each other all the time. Please. Okay, thank you for that introduction. Yeah, good evening everyone. I'm Jordan, like you
00:42
said, and this is Hasan and Tanmoy. We are all three students in the Erasmus Mundus Masters of Science at Geospatial Technology. This project was just a part of a final project in a course. We decided to develop a plugin for QGIS within a month, a couple weekends, and this is what we came
01:03
with. It's titled 3D change detection, a QGIS plugin with Python 3. So saying that, it is a relatively modest plugin, but we believe that it is being used for a purpose that could be trending and also give you some ideas with those trends. So a little bit more about our
01:22
program. Like I said, it's the Erasmus Mundus Masters of Science at Geospatial Technology. It's from the European Commission. It gives grant money to these three universities, University of Yame, University of Munster, and also University of Nova at Lisbon. And they bring in students from all over the world, and in particular to this year for the 2020 graduating class.
01:47
Those are the 20 countries that are represented in this program, so it is quite diverse. It is beautiful program. And so the three of us have become pretty great friends among the two semesters we've been working together on many projects. What's funny is that we often get reminded of
02:04
how unique our relationship is, even when we were coming into customs, into Romania, when they heard that we were traveling together and we were friends, one from Bangladesh, one from Pakistan, and one from the United States. They're like, something has to be going on. This is very suspicious. And then we told them that we go to school together, and they're like,
02:20
now you're lying. But yeah, so also we want to talk about a conference. One of our courses is to increase air capacity and management. And so we designed our own conference and put it on as well. And it's going to be hosted this year in Casa Alon, Spain. And it's free registration. You just show up and you can hang out with us and talk about GIS. If you're
02:45
feeling a little more involved and actually submit a paper to talk about, you can actually receive 500 euros and grant money to travel there as well. So we'd love to have you guys and continue to talk about GIS topics. Okay, going back to the plugin now. So yeah,
03:01
once again the title is 3D Change Detection. We just recently published it into the QGIS repository. And the whole plugin, it's a lot of not new functionalities, a lot of native functionalities, but it's going to be used for a type of use case that we think is unique, but also going to be trending in future terms, such as unmanned aircraft systems
03:24
and more aerial data that's very detailed. You can get very beautiful DSMs and DTMs from that. And we have applied tools to help you create change detection and also assess the errors and accuracy of those functions. So like we said, unmanned aircraft industry, everyone knows this.
03:46
It's the cool thing now. Everyone's using drones and getting very detailed data. So for an instance, just to show you the example of that, traditional satellite data, 30 meters ground sampling distance, and that's what it would look like. And the same area being mapped with
04:01
a unmanned aircraft system, which we mapped ourselves with the Phantom 4, you can get 15 centimeters ground sampling distance, and you can see how detailed it can be when you put into 3D viewer and QGIS with those pixel values for Z. And so, yeah, the idea of development was with digital service models becoming more detailed, we thought that people might start
04:25
implementing use cases like this that we're going to be showing you and talking to you about. And we wanted to simplify and automate that process, which takes quite a few different tools to make this happen, along with also when you get to the error assessment part, it gets pretty tasking. So we wanted to automate that. And then also for those that
04:44
aren't experts and also new to GIS, some type of open source tool for them to use, maybe for those that are coming from the drone industry and wanted to do some of the change detection with DSMs. Also, we think we came up with somewhat of a unique idea to do an error assessment with
05:01
DSMs that are created from unmanned aircraft systems or aerial data, whether it be photogrammetry or LIDAR when they're being interpolated into those DEMs and how to see how accurate they are. So, yeah, this is the user interface for the plugin. So first off, it's just simply the old
05:20
raster, the new raster. And then the functionalities we've included were the minimum change threshold that you can put, which you change that based on the sensor accuracy that you're using. And then also the data alignment. It's really hard to get a pixel to pixel alignment, perfectly even using ground control points. So you want to also define that threshold based
05:41
on what you think that misalignment is between those two DEMs. And then also, depending on your project's focus, how much change are you actually looking for that's significant to yourself. And then also we have the shape file mask that you can put in there, whether that be the building footprints. For instance, if you're doing like change detection for disasters between buildings, if you have the data before and after, you can just do those
06:02
building footprints and eliminate all the other noise around the buildings and just focus on the buildings. Or define a study area on other applications, such as river basins, and also this improves processing time. And then also we have the error probability maps, which is an optional functionality like we've been talking about, that we believe is kind of
06:20
unique, that shows you where possible errors are when you're generating DEMs from point clouds, from photogrammetry and LiDAR data. And also we have a help button because we've created a wiki page on the GitHub page, which explains all this to you and instructions. So yeah, this is just a quick methodology of how the GUI we've created and all the
06:40
functions that are within the plugin and our process. And so the output would look like this if you actually use building footprints as the mask. And we actually manipulated the data a bit to show that if a roof caved in in this instance, and so you can see here with the
07:01
surrounding area cut out, just leaving the buildings and showing what areas are actually damaged for those buildings. And you can also apply other base maps once the masks have been implemented as well. And so this is another example if you're just going to use it for a river basin. We got this example data for the riverscapes consortium, and you can see here in the 3D Viewer QGIS seeing the change, the decrease in red and the
07:25
increase in blue. And so I'm going to hand it off to Tom. We can talk a little bit about the error assessment we did in this plugin. Hello. So one of the main problems when you are working with high resolution imagery, especially for DEMs, is that there will always be data
07:46
errors. Now these errors can be in the form of inconsistencies or data gaps. For example, taking photogrammetry, because of reflective surfaces, the data is not captured appropriately. And in case of LIDAR, there may be cliffs or some other sorts of obstructions that actually
08:05
do not allow the data to be captured properly. So in these cases, when you take your data and you apply any kind of interpolation, it just becomes a mess. So what we tried to do was, we tried to find some literature on how do we actually take the areas that is possibly
08:24
can be an error. So for example, this was the thing I was talking about. Say for example, in the photogrammetry, your data is missing because of the reflective surfaces. So as you can see, after the interpolation, there is an excessive of over smoothing. So this over
08:41
smoothing, when applied and you use the plugin, you will get an answer. Obviously, you will get whether there is a decrease or increasing change. But the thing that you will not understand is whether actually that change is actually happening there or not. Because here, actually, this is actually a river and because of the over smoothing, you cannot actually figure out
09:01
what is going on. So we tried to do the errors possibility calculation based on Riley's method, which was published in 1999. It was initially called as the ruggedness index. But we tried to apply the ruggedness index with relation to topography and slope. What was done here was that we all know that there is a D8 connectivity between the single cell. So
09:25
a single cell is surrounded by eight cells. So these eight cells have different elevations. Some are higher, some are lower. So when you take a difference in the elevation, you get somehow, you get a difference as positive or negative. So we square that difference between
09:40
them and then we take a square root of the total sum of the errors. So this is the spatial heterogeneity that you get when you try to do any kind of ruggedness index, topographic ruggedness index. These tools are presenting QGIS and other open free software. But the thing is that just with the help of that, you will not be able to identify which
10:04
areas are actually potentially have errors in them. So what we did was whenever there is an abrupt smoothing or any kind of abrupt change, we tried to apply a slope continuity function to that. So when you apply a slope continuity function to that, you get an area that is
10:21
supposed to change but is not changing or is not changing but is supposed to change. So the algorithm basically takes out those areas which it probably thinks is a possibility. And there is a small limitation here saying that because since it is an error possibility map, so the user has to check whether it is actually an error or not. Most of the
10:43
times we have found that actually it is an error but sometimes it also happens due to the bounding boxes especially in buildings. Just to show a bit more here. So basically this is one of the errors that we are talking about. When you apply the error possibility algorithm to this, so you get these extracted areas. Now this has actually come very properly. We did not even
11:06
think that it would come so nicely but it works. But there are some possible values that get interchanged and there is still a need for implementing this and that will be applied in our future version of upgrading this plugin. So what was the future is the type of things
11:25
that the user needs to know about. Like when I said about the bounding box, about the area. So as you can see, the correct one is actually the building that you are seeing on the left, but the incorrect one. But sometimes these kind of changes are also not taken up by the error possibility map because it is surrounded by a specific slope. So it does not actually
11:45
basically understand whether there is actually a change in slope that was not supposed to be there or there was no change in slope that was supposed to be there. So these kind of things are some of the future assessment. We are trying to evaluate the algorithm inside a bounding box especially for buildings so that you can actually see the error possibility more
12:05
and you can also have a confidence level as to what the error actually is. Now I'll hand it over to Hasan. Thank you. So here we take a look at the use case that we tested this plugin on and basically what we did was collect the data for this region ourselves and this is just showing all
12:25
the sample points where we took the information from and it's just a fly-through of the area. As you can see we collected a lot of data to get this high resolution DEM using the phantom 4 drone as Jordan already said and it's just a nice way to see how it actually flew.
12:43
We've vector the points where we actually collected the data from and what is the basic concept is that you take you fly the drone and get collect the data before disaster strikes and when a disaster strikes you you fly the drone again and you collect again the data.
13:04
So you collect the data again and you basically make a comparison between the DEM from before the disaster struck and after the disaster struck and you identify the regions that are affected most and this is can be about the use case depending on the use case you can change the
13:21
threshold and get different information so for example if you're trying to find out if only the regions that had like complete collapse you'd have to increase the threshold and you can also use the threshold to cater for the misalignment between the two DEMs that you get. This is a fly-through of the data that we collected in QGIS as you can see that it's I don't know
13:54
why it stopped okay so this is a working demo a small demo we clipped the area from that and this is first we select the old raster which is the DEM from before the disaster struck and
14:06
then we select the DEM from after the disaster struck then we add the mask to only work on the data that we ideas that we want to work on this could be like building footprints and areas where you want to focus the change detection on actually then you let the tool run and you
14:24
get the output which yeah you can then visualize in the 3D view and you can see based on the color map ramp on the left side that these are the regions where the actual damage the
14:42
building damaged buildings are so what are the future plans so the clue as i think already said the plugin is already available in the GitHub in the plugin repository in the QGIS plugin repository but we are still working on it and we have made some changes already which we will upload pretty soon and the things that we are currently working on are the resampling automation
15:05
and we are trying to improve the processing and to optimize the code because it takes a little bit time to process all these high resolution DEMs and we're trying to get the use the new 3D functionalities that have been developing QGIS 3 and are being developed in a very rapid pace
15:20
and to incorporate them into the DEM and try to handle as many new error types as we can to make the plugin more stable and greater for more use cases in conclusion what we've done here is we've used non-original functions for original applications and trying to address new trends we've but our focus here has been on the high resolution DEMs that are usually coming from
15:47
UAVs and that is why the error possibility maps that we are creating are having are basically based on the data that is coming from lidars or UAVs still we know that many improvements can be made and since and it's the code is available on GitHub and we welcome all
16:05
contributions and all help and please try it out and let us know how we can improve and please contribute as well and what we've done is we've realized that new functionality needs have been found as more and more data has been collected and this specific use case is because of the
16:23
increase of the data that is being created by drones everywhere thank you thank you for this interesting presentation very nice also to see this international collaboration it's definitely
16:45
in the spirit of this conference and are there any questions on the plugin or the change detection
17:00
hey guys great presentation thanks i just have a question because like you're as far as the resolution spectrum is concerned you're talking either about about UAS or SRTM which was your comparison in the middle you can have DSM from satellites which is like one meter basically so my question is what's the minimum resolution that you think
17:25
is where it still makes sense to use your tool as in like you know how will the error increase for example for satellite based DSM yeah yeah so we were just talking about more like open source satellite imagery i'm not sure if there's is there open source one meter
17:43
well i guess you can find some okay yeah i know um so yeah i don't think their possibility will really be applied to that situation um it's more for those data that are coming from point cloud data being processed with a lot of the the typical drone processing software using photo whether it be through
18:05
photogrammetry or also lidar and then interpolating that into a dm and and when there's missing data there's uh over smoothing with those missing gaps in that interpolation and so it's addressing that issue so i don't think it would be applicable with the satellite data hi yes uh i've seen i noticed that he used the pix4d to do the calculations to
18:41
create the dem so in your process of creation of the dm you used actually structure for motion techniques or you just took up the points and then you interpolated to create the dem you basically the question is how you generate the dem through yeah we used uh qjs sorry
19:04
we use pix4d pix4d so the if i remember correctly pix4d uses structure for motion to create the surface is that correct uses the structure for motion
19:25
great now the next part of the question is that these surfaces they do have an an error surface there is an error basically it's them so when you are doing the change detection are you somehow propagating the
19:41
errors of the two dams so you would have the total error no we're just doing the error in the the old one and the new one and just saying that when they're processed yeah in the threshold if it's over that threshold it's that yeah yeah there was there was a probably a interpolation error on the old one interpolation error on the old one so most likely this change
20:04
you're seeing here is not accurate it's just the interpolation error good thank you yeah and also the change from there is also shown in purple as you can see there so even if you can see the change the the area is selected for you in purple so that you can actually notice
20:20
that okay this is the area that i should be careful about before making a decision there's still time for questions if you have any you should have stayed there
20:42
thank you hi guys i've got a question what are the possible output formats from your module that's raster yeah okay well you said was the processing time no no no what are the
21:02
formats oh yeah just raster just raster yeah okay were you considering shapefile for example for no no but i mean that's something we could implement we could okay put that as a optional functionality in the plugin yeah thank you very much
21:24
are the good questions that's quick and quick question how much time do you need to
21:41
create one kilo square kilometers of your dam or something like this yeah the use case actually was one point yeah it was one and a half square kilometers i think it took like an hour for us yeah i know the whole extent it's like an hour but maybe 30 minutes yeah
22:00
it's faster 30 minutes we ever do one and a half square kilometers any other comments or questions if not then uh thank you again and thank you guys can prepare for the next speaker