GithubHelp home page GithubHelp logo

antiqueeverett / back-of-device Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 264.76 MB

a collaborative Mobile Information Sytems Project

Java 21.19% Makefile 0.09% CMake 6.47% C 4.61% C++ 67.47% Objective-C 0.16%

back-of-device's People

Contributors

antiqueeverett avatar

Watchers

 avatar

back-of-device's Issues

loss of control

while in the background, application continues to play music.
application can no longer be controlled when returning from background.

Autoexposure (AE) adjustments

Currently, sluggish AE helps us detect taps, but can be weird in low-light situations or if the camera has been improperly configured before (stuck on wrong settings, no idea how to reset them). Maybe we can find a way to set autoexposure to a sane default range or value to create more consistent results.

LumaAnalysisRunnable reports luminance as 0

LumaAnalysisRunnable reports luminance as 0 because on every new captured frame, the memory address of mImgGray changes.

Possible solutions:

  • Write new image values to existing matrix (slow as hell, Mat.put doesn't want to work with byte arrays for some reason)
  • Don't give LumaAnalysisRunnable the image, instead give it a reference to the Backhand class (dirty)
  • Create a method that updates the image (literally just came up with that as I was typing this and it seems to be the best solution)

Swipe logic

  • Swipe from the bottom: easiest case
    • initially only lower third will be dark
    • then lower 2/3
    • then full image โ†’ can we stop here?
    • then upper 2/3
    • then upper 1/3
    • then light
  • more complicated: swipe from above:
    • initial state is completely dark (finger covers sensor already)
    • then lower 2/3
    • then lower 1/3
    • then light
    • โ†’ less data points, less accurate detection..?
  • Sideways swipes: problem: left-handed vs right-handed
    • can't rely on finger clearing the camera before the swipe
    • different angles
    • possible solution: same logic as downward swipe, but loss of accuracy

camera input control

light deviations outside finger movements trigger unintended application actions.
currently application does not function properly under low lighting conditions

Timing adjustments

Currently, tap timing is based on millisecond measurements. However, how fast a device delivers images is up to its sensor and processor, and a low end device such as the Moto X 2013 may take 150-250 ms between images (including luminance calculation), while a newer device (e.g. with more cores, therefore the ability to compute more luminance segments concurrently) may be done much quicker.

Proposal: Make the timing frame based instead of time based, or use a combination of the two. I.e.:

  • determine the limit at which gestures can be reliably detected
  • run a timing loop at the start to determine fps and/or lock them using CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE (will not influence computation time though)
  • artificially skip frames for "too fast" devices? (doesn't sound like a good idea...)

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.