Difference between revisions of "Integrating a module to 3d scan a house within the MapMint4ME android application"

From OSGeo
Jump to navigation Jump to search
m
 
Line 9: Line 9:
  
 
=== Abstract ===
 
=== Abstract ===
This project allows a minimalist 3D scan (taking multiple pictures, recording camera position, using opendrone map to rebuild the 3D scene) with the house faces (accessible/visible faces) then load it as georeferenced data with the database and being able to export the data back on MapMint for 3D viewing.
+
This project allows a minimalist 3D scan (taking multiple pictures, recording camera position, using opendrone map to rebuild the 3D scene) with the house faces (accessible/visible faces) then load it as georeferenced data and finally export the data back on MapMint for 3D viewing.
  
 
'''[https://github.com/ayoubft/MapMint4ME Link to Github repository]'''
 
'''[https://github.com/ayoubft/MapMint4ME Link to Github repository]'''

Latest revision as of 09:11, 8 January 2022

Introduction

Introduction of MapMint

MapMint4ME is an Android application to record your data on the field. MapMint4ME is an Android application for MapMint web-mapping services. MapMint4ME gives the users capability to store data without using the internet locally. The data can be a file stored in alpha-numeric format, an audio file, a video file or readings obtained from a Sensor Observation Service (SOS). When the user returns back to a place with network connectivity, the recorded data can be uploaded back to the server.

MapMint4ME is an android application for MapMint web-service. MapMint is an internet-based Geographic Information System(GIS), designed to facilitate the deployment of Spatial Data Infrastructure(SDI). In an SDI, geographic data, metadata, tools, and the users are connected in an interactive manner in a framework so as to use the spatial information in an efficient and flexible way.

Project proposal

My proposal for GSoC 2021.

Abstract

This project allows a minimalist 3D scan (taking multiple pictures, recording camera position, using opendrone map to rebuild the 3D scene) with the house faces (accessible/visible faces) then load it as georeferenced data and finally export the data back on MapMint for 3D viewing.

Link to Github repository


Timeline

17th May - 7th June (Community bonding period)

Week One: 7th - 13th June

  • What have I done this week:
    • Gone through some of the code of the app with mentor
    • Solved the soft link problem in Windows
    • Added a button for 3D scene in the home page
    • Started the layout for the 3D scene page
    • Gone through some documentation regarding javascript in WebView in Android
  • Am I blocked on anything:
    • How to make the binding between javascript and java
    • How the whole app is working, and how everything is linked to everything
  • My plans for next week:
    • Working harder on my blockings
    • Begin implementing the pictures taking within the app

Week Two: 14th - 20th June

  • What have I done this week:
    • Worked on UI elements on the android app
    • Discussed with mentor some issues of the SQL queries in the newly set up online MapMint live instance
  • Am I blocked on anything:
    • I am not blocked on anything.
  • My plans for next week:
    • Debug online MapMint instance
    • Collect images from phone, experiment with creating a form

Week Three: 21th - 27th June

  • Am I blocked on anything:
    • I am not blocked on anything.
  • My plans for next week:
    • Connect the android MapMint4ME app to MapMint.

Week Four: 28th June - 4th July

  • Am I blocked on anything:
    • I am not blocked on anything.
  • My plans for next week:
    • Make zoo-service to get data from odm

Week Five: 5th - 11th July

  • My plans for next week:
    • Continue working on getting the zoo service up and running
  • Am I blocked on anything:
    • I am not blocked on anything.

Week Six: 12th - 18th July

  • What have I done this week:
    • Had a meeting with mentor, which was highly productive, and resulted in the other accomplishments of this week.
    • Removed a symbolic link to make sure the service will be running well see in my GitHub wiki
    • Added a template that will be generated by the service code here
    • Tried getting the template working
  • My plans for next week:
    • Continue working on getting the zoo service up and running
  • Am I blocked on anything:
    • I am not blocked on anything.

Week Seven: 19th - 25th July

  • What have I done this week:
    • Added a volume to the zoo-kernel container to get access to the templates
    • Added a volume to the zoo-kernel container to get access to 3D models
    • Visualized a 3D model (.gltf) whitin cesium
  • My plans for next week:
    • Continue working on getting the zoo service up and running
  • Am I blocked on anything:
    • I am not blocked on anything.

Week Eight: 26th July - 1st August

  • What have I done this week:
    • - Switched from Cesium to threeJS as viewer of the 3D data
    • Added odm 3D results to 3dModels volume
    • Created a simple user interface to view the 3D model
    • Working on creating a drop list using cheetah template to allow the user to choose what model (from the existing ones) to view
  • My plans for next week:
    • Continue working on UI
  • Am I blocked on anything:
    • I am not blocked on anything.

Week Nine: 2nd - 8th August

  • What have I done this week:
    • Finished the final draft for my UI (to render 3D models)
    • Created a drop list to allow the user to choose what model (from the existing ones) to view
    • Loaded successfully multiple sample models (**Tajjin** / **Rock** / **GerrardHall_Building**) all processed by me usig odm . [See here.]
  • My plans for next week:
    • Refactor & clean up the code for loading the 3D models
    • Connect the android MapMint4ME app to MapMint.
  • Am I blocked on anything:
    • I am not blocked on anything.

Week Ten: 9th - 15th August

  • What have I done this week:
    • Fixed the apt-key issue
    • Clean up the code used to view the 3D models
    • Working on documenting the numerous parts of my project
  • Am I blocked on anything:
    • I am not blocked on anything.

GSoC 2021 Final Report

Abstract:

This project allows a minimalist 3D scan (taking multiple pictures, recording camera position, using opendrone map to rebuild the 3D scene) with the house faces (accessible/visible faces) then load it as 3D model and export the data back on MapMint for 3D viewing.

The state of the art BEFORE GSoC:

Have you ever wished that you could easily transfer a real object into a digital file? The technology is here, but most of us simply do not have access to high-end 3D scanners that can reconstruct the digital geometry of a physical model.

The added value:

Now it is possible to take multiple pictures using MapMint4ME, then visualize the 3D model issued from the taken pictures in MapMint.

Future Work:

  • One challenging part of my project, not yet done, is to get to link the MapMint4ME with a MapMint instance.
  • I did not get enough time to automate the step of creating the model using openDroneMap, here is what i was thinking to do.

Permanent links & documentation:

Code Repositories:

Videos:

Other Important Links:

Documentation

My work consist of three parts:

  • One graphical image describing my project:

Caption text

Part One: Get the pictures using MapMint4ME

Here are the commits for this part.

  • Created a button that direct you to the this layout.
  • I have created a form that can be filled with a fixed number of images taken from the mobile MapMint4ME app, and will be transfered to MapMint, here is how to do it.
  • I have some issues regarding linking MapMint to MapMint4ME, so I did get the datasets for buildings from here, and I have taken the tajjin pictures by myself.

Part Two: Create the 3D model using ODM

  • I have created a 3D model from pictures, here is the tutorial.

Part Three: Visualize the 3D model in MapMint

Here are the commits for this part.

  • Got MapMint working on virtual machine tutorial here, then I finished up with configuring it on Docker tutorial here.
  • Added 3D models to the volume see here.
  • Used docker volumes to get access to the 3D models to be visualized.
  • Using threeJS, I was able to render the 3D models in MapMint, using a template.

Mentors