Coder Social home page Coder Social logo

gcp-osm's People

Contributors

domyos avatar hornig avatar mfa avatar moormaster avatar quantenprojects avatar ulip avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

domyos habi

gcp-osm's Issues

Robust detection of rotated QR codes

The OpenCV QRCodeDetector seems to have its problems with rotated QR codes. We must analyze this further and maybe try something else for better detection rates.

handle the (java) exceptions for non-images

gcp-osm/main.py

Lines 16 to 18 in 1078220

reader = zxing.BarCodeReader()
barcode = reader.decode(file)
# does not handle exceptions yet, when the file is NOT an image

when non-image files are given to the barcode reader, it thows java exceptions.

handle the exceptions, or filter out non-image files.

if there is no qr-code in a photo, the barcode reader returns "None". Maybe also return "None" here to use the same functions later own.

Checking the OpenDroneMap GCP format!

gcp-osm/main.py

Lines 69 to 78 in 46377aa

# OpenDroneMap GCP
## header
if odm_gcp_header == 0:
# this is still to understood, why ODM just allows one utm zone and that is in the header!
f.write("WGS84 UTM " + str(location_utm[2]) + str(location_utm[3]) + "\n")
odm_gcp_header = 1
## line by line saving the coordinates
f.write((str(location_utm[0]) + " " + str(location_utm[1]) + " " + item[3] + " "
+ str(points[1][0]) + " " + str(points[1][1]) + " " + file.split(os.sep)[-1]) + "\n")

how to handle GCPs in different, neighbouring utm zones?
is the separator within the line a "space" or a "tab"?
shall we allow an input from my_gcp_list without altitude?

src: https://github.com/OpenDroneMap/ODM/wiki/Running-OpenDroneMap

Supporting multiple QR codes per image

The current implementation only supports one QR code per image. It would be great to not just stop at the first found QR code but instead take them all into account.

Support analysis of directories

The prototype currently does only support analysis of single files. It would be nice to have an argument that allows providing a directory that contains images gcp-osm should analyze.

Position pattern detection accuracy

The positioning pattern is currently approximated in the easiest way possible.
It might make sense to use OpenCVs contours to detect the position pattern with more accuracy.

adding conversion from Base64 to Integer 64 for OSM ID

gcp-osm/main.py

Lines 65 to 75 in 00cec7f

if parsed.find("/n/") > -1:
print("type indicator: n/ = OSM Node ID with Basis 64")
if parsed.find("/w/") > -1:
print("type indicator: w/ = OSM Way ID with Basis 64")
if parsed.find("/a/") > -1:
print("type indicator: a/ = OSM Area ID with Basis 64")
if parsed.find("/r/") > -1:
print("type indicator: r/ = OSM Relation ID with Basis 64")

adding the conversion from Base64 with ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_~ to integer 64bit to convert to OSM id.
More here https://github.com/aerospaceresearch/gcp-osm/blob/master/README.md

What format shall we use?

5;50.0;10.0;0.0*
23;51.1;11.1;111.1*
42;52.2;12.2;222.2*

current format line by line
ID = any ascii
latitude = degrees in float
longitude = degrees in float
altitude = meters above ground

separator between is semicolon ;
ending the line with asterisk *

shall we use it?

Check what will happen when multiple QRs are in one image!

gcp-osm/main.py

Lines 44 to 50 in 00cec7f

if os.path.isdir(args.file):
print("loading in all files in folder:", filename)
processing_files = gcposm.utils.get_all_files(filename)
elif os.path.isfile(args.file):
print("loading in this file:", filename)
processing_files = gcposm.utils.get_one_file(filename)

it is now working for one QR per image.
please check if it works when two or more QR codes are in one image.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.