Giter VIP home page Giter VIP logo

the-machine's People

Contributors

devloop0 avatar gitter-badger avatar kodbilenadam avatar poi-the-machine avatar xalaxis avatar

Stargazers

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

Watchers

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

the-machine's Issues

Camera 2 doesn't recognize faces trained in Camera 1

Hi. Today I connected a second camera to my computer. Everything works well, except than that camera is unable to recognize my face. So I tried a retrain (changing permissions), so I trained my face in Camera 2. And it works. But now my face is not getting recognized in Camera 1. (Build from GitHub) Tried to modify source code but nothing. Help please!

Resources are in wrong path

In Maven projects, resources should be placed in "src/main/resources/". So you can produce your app with one fat jar file. This gives to user more flexibility: The app becomes portable, and easily shareable. And also, denies user's access to resources.

It is not big issue but it is best practice.

Updating of the wiki with current project status and members

The wiki is now out-of-date due to the sudden influx of new project members and the shifting of our aims. I'll update it over the next couple of days.

Setting as Day 1 milestone as we ought to have a solid aim set out before the next big release.

[ENHANCEMENT] Questions UI & other

Note: I'm developing a local machine based on this one. In mine I developed a Question UI.
Basically, it analyzes for keywords (e.g. "Show me the profile of Reese, John" - keywords are PROFILE, OF and the next word(s) (Reese, John).
Maybe I can do a pull request.
And please, use Futura as the interface font, and make rectangles like the one @ the-machine-project/the-machine-project in Surveillance Test.
How about using Eigenfaces for face recognition?

Speech Recognition Accuracy

Currently, the library we are using is CMU Sphinx: http://cmusphinx.sourceforge.net/
The problem is the unlimited vocabulary recognition is extremely difficult locally. Even Google sends speech to their servers for more accurate speech recognition.
http://9to5google.com/2016/03/11/google-accurate-offline-voice-recognition/
The good news is that it is probably possible to get highly accurate speech recognition locally, the bad news is that it will take significant processing power and memory. If we choose to use our own speech recognition system, then we may have to stop using CMU Sphinx or modify their code.

Executable Size and Distribution

As the release of the first build approaches, there are some kinks to be worked out. Of course the source code will lie here on Github, but there is the issue of executable size. Currently, the application relies on Emgu CV and might rely on NAudio too (as of now, it is bundled, but is not used, but its contribution to the executable size is minor). Currently, the executable size is around 800 MBs with all of the dll dependencies. Compressed with 7z, that goes down to 120 MB.
There are a few options on how to go about this:
1) We can bundle the executable in the source repository compressed with 7z. However, the downside would be that it would significantly increase the "git clone" download size and bundles the source and the executable together.
2) We can create a separate repository for all of the executables, but this raises the other problem that executables are generally not on Git.
3) A hosting site (Mega)? This would probably be the best would require more work. Maybe a Github.io site could be used as well.

Of course, these are my opinions on how we should proceed. If there are any other options or opinions, I would love to hear them. Any help is greatly appreciated. The good news is that this should be the extent of the executable size until speech processing is added.

TL;DR Help with executable size.

gh-pages branch should be a different repo.

Most other github repositories leave their github.io websites in a different repo. I feel that anything not directly related to the machine development should be in a different repository. If it's okay with everyone, I can move it to a different repository.

Cross Platform Compatibility?

Hi,

I was looking through the code and I felt that the cross platform aspects of the app weren't being addressed.
I was wondering why something like http://electron.atom.io/ wasn't considered. Especially when a lot of awesome apps are being built using it see Slack and Popcorn-Time.

Android sdk

It tells me that I need an android sdk in order to run it. Where is it? I cannot find it

Dead Link

Hi there,

I just wanted to let you know that the x64 link seems to be down.

Was it intentional ?

Thanks in advance.

Submitting Code to be validated

I submitted an issue earlier about the developer version having an error because the openCv file does not exist. I am not an expert at Github, how can push changes to a branch to show a fix that might work?

Day counter

A script which updates a json file with the current number of days the system has been running. I should have this done by sometime later today hopefully.

Linux and Mac Support

Currently, our machine supports Windows (only platform I could test on as of now), but porting everything to Linux and Mac should be easy. I would definitely appreciate some community support on this. Basically, the only platform-dependent line of code is in MainPage.java with the System.loadLibrary.

Microphone Handler Startup Issue

When starting up the machine i get 8 Errors and i dont know how to fix them. The Error message is as follows.

Information:Using javac 1.8.0_91 to compile java sources
Information:java: Errors occurred while compiling module 'machine'
Information:6/15/2016 5:28 PM - Compilation completed with 8 errors and 1 warning in 2s 19ms
C:\Users\Richard\Desktop\the-machine-master (1)\the-machine-master\src\main\java\org\themachineproject\machine\MicrophoneHandler.java
Error:Error:line (3)java: package edu.cmu.sphinx.api does not exist
Error:Error:line (4)java: package edu.cmu.sphinx.api does not exist
Error:Error:line (5)java: package edu.cmu.sphinx.api does not exist
Error:Error:line (24)java: cannot find symbol
symbol: class LiveSpeechRecognizer
location: class org.themachineproject.machine.MicrophoneHandler
Error:Error:line (43)java: cannot find symbol
symbol: class Configuration
location: class org.themachineproject.machine.MicrophoneHandler
Error:Error:line (43)java: cannot find symbol
symbol: class Configuration
location: class org.themachineproject.machine.MicrophoneHandler
Error:Error:line (48)java: cannot find symbol
symbol: class LiveSpeechRecognizer
location: class org.themachineproject.machine.MicrophoneHandler
Error:Error:line (62)java: cannot find symbol
symbol: class SpeechResult
location: class org.themachineproject.machine.MicrophoneHandler
C:\Users\Richard\Desktop\the-machine-master (1)\the-machine-master\src\main\java\org\themachineproject\machine\FacialRecognition.java
Warning:Warning:line (132)java: getIntBuffer() in org.bytedeco.javacpp.helper.opencv_core.AbstractArray has been deprecated

A better GUI

Alright, soooooo..... One of main things that I was expecting to see when I've found this project is a GUI matching the one in the show. Machine 1.0 sort of accomplished this (aside from camera being in a separate window). Machine 2.0 is (no offense to creators, great job anyway) a joke in this aspect. So after thinking about this for quite some time I came up with a list of ideas/suggestions how to make the GUI more matching to the real (well, original) one. Sadly my java skills are very low (I'm a web dev, work with PHP, HTML, CSS, JS) thus I cannot attempt to implement my ideas myself.

  • Revert the main window to the way it was in v1.0
  • Get rid of the pop-ups (such as the camera or the terminal)
  • Change the "information" box. The one from the title sequence doesn't look good unless it's on top of a full screen image (it simply gets cut off). A better one might be something like this.
    vlcsnap-error571
  • At the point where it would completely load (saying "admin detected..." or "secondary detected...") replace that with "Main screen"

What do I mean by "Main screen":
This is a "replica" of what we see most of time in the show (not the full screen camera feed). Examples:
vlcsnap-error254
vlcsnap-error219
(without the "contextualizing" text)

  • Place the webcam "feed" in the center (so it can remain at 1:1 ratio)
  • If multi-input support is added those feeds can placed on sides (left and right), user can scroll through them by pressing left and right on their keyboard
  • If the webcam resolution is small, the information box can be placed outside of image and linked with a yellow/white/red (depending on classification) line to the colored box around the face
  • The speech recognition can be placed on top of the main image in a similar manner to when machine is analyzing audio feed in the show. Example (notice that the text isn't stationary, it is scrolling right to left):
    vlcsnap-error966
  • This can be used as a background (or maybe just some static blue color):
    vlcsnap-error285
  • Under the camera (inside the "main screen") we can place the terminal (which can optionally slide down and up)

This is a rough draft of my ideas which I'm putting here up for a discussion. I know some people might disagree, some might say that they are too hard to code or something similar. I'm just interested to see if there are other people out there who share my opinion.

Also if this is accepted this is probably gonna be another long-term issue as such gigantic redesign will obviously take time. Maybe use another branch for it?

Add multiple input support

If we want to make our machine just like the one in the show, one of important things should be adding the ability to accept multiple audio and video inputs. An idea on how to display them to user I've mentioned in #35. These inputs can be

  • Multiple webcams
  • Ability to open (from running machine!!!) video/audio files
  • A web stream (eg. check this and this). This can also include IP cameras, however I don't have an example ready so I can't expand on this

I know this raises issues with hardware requirements thus this has to be optionally (obviously) for those who have a good enough rig to provide such processing power. A solution for this can be an option to disable facial recognition for certain inputs (eg, If I have an IP cam watching my backyard where it won't ever recognize a single face)

Target UI for the Desktop Application

Screenshots of both Samaritan and the Machine's UI when they are looking at people as well as when Samaritan takes input from people would be helpful.

Advanced AI Features

This will probably be a long open-issue, the plan is to add a bunch of AI features to the Machine and allow the user to choose when to apply them. If the machine can automatically do this, then that would be great as well.

Add a notice on how to open the terminal

The title says it all. It is impossible to open the terminal. Tried clicking around, smashing keyboard and no results. Running last code version downloaded from github (that is e971c2b), compiled manually

MainPage.java loading the system file

I was able to correct the code on my computer, but was wondering if there was a general fix for the people playing with the code.

The system load requires uses the user directory to load the opencv_java***.dll file, however, the code looks for the file in the directory the project is in, not the C: file like the tutorial said. Is there a way to automatically fix this for people playing with the code or should we just deal with it?

Also, is there a way to generalize the open_java***.java to allow any version?

Rename testing branch to Day 0

Since our next milestone is day zero, and everything in the testing branch is geared towards the day zero software, I'm wondering whether or not we should change the name of the testing branch to day-zero. I'm simply asking because the desktop application is nearing completion of that milestone and I would like to start working on heavy UI improvements towards day one (another branch). Suggestions are welcome...

Doesn't work.

I tried to download this program but have been having some issues. I've downloaded both the x86 and x64 versions. I am on Windows x64 but that version doesn't open at all. I've tried the x86 version but I get to the point where it asks my name then just goes black and nothing happens. I've updated my java as well. I am on Windows 10

edit: After closing and opening it a few times I eventually saw my face. It said training and once it got to 200 it froze and I had to force close it.

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.