Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Machine Learning Classifier for NaviGator #414

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Grymestone
Copy link
Contributor

@Grymestone Grymestone commented Nov 2, 2018

closes #456
closes #455
required by #360
required by #210

Depends on #138.
Very much a work in progress, this is basically a straight port from SubjuGator code. There are quite a few things that could improve this and cut down on file usage but as it stands this code functions and will return a classified image with bounding box.

TODO

  • Move all Utils and Protocs to a single directory
  • Have those Utils and Protocs take in arguments rather than being hard coded to look at a single file
  • Modify the perception scripts to return what we need for each task beyond just the bounding box.
  • Integrate with PCODAR.
  • Abstract to MIL Common

Currently I have another branch that was previously integrated with PCODAR before its completion. I'm not sure how well it will work now but I have a baseline at least for the integration.

@Grymestone Grymestone added the wip Work in progress (for reference, do not merge) label Nov 2, 2018
@Grymestone Grymestone self-assigned this Nov 2, 2018
@ghost ghost added the review label Nov 2, 2018
@kev-the-dev
Copy link
Contributor

kev-the-dev commented Nov 13, 2018

I think it is reasonable to target this for mil_common (save for the specific graphs/labelmaps for NaviGator's challenges).

The goal is to have a node that implements the vision_node interface and takes in the necessary configuration files (graph, label map) as parameters. All this nodes has to do is implement a callback function which takes in an image and returns a list of labeled boxes. It is a class, so you can override init for startup configuration (loading in the graph).

As for the large graph files, I recommend hosting them on plumbusi and using file(DOWNLOAD) in CMake to have it be downloaded on builds (verified with checksum) without having to have it as a git object.

@kev-the-dev
Copy link
Contributor

Another question: Is killing/restarting the processes the only solution for tensorflow's restrictions on multiple processes? For example, maybe you just need to close/restart the tensorflow session object? Worth a small amount of research to have a cleaner/faster solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in progress wip Work in progress (for reference, do not merge)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Tensorflow classifer for dockshapes Add Tensorflow classifer for object classification
2 participants