kinhong/OpenLabeler

Inference and Training with Visual Recognition Cloud Services

Lotti opened this issue · 1 comments

Lotti commented

Hello @kinhong!

Thank your for addind different colours on annotations! It's very useful.

I'd like to contribute more on your project by adding a section (and code) that uses Visual Recognition Cloud Services (from Amazon, Microsoft, Google, IBM, etc.) to do Inference and Training.
I tried to do it by myself, six months ago, but I'm not so fluent in Java and JDK... I've got lost training to understand the code architecture.
Can you spend time (writing emails or chatting) to explain to me how your app is structured in order to:

  • Add a preferences panel where store credentials of cloud services
  • Save these parameters in a config file.. in a dedicated section of what already exists in your app
  • Identify a hook where I'll put code to call cloud services to do inference and training
  • Develop cloud services plugins.

Thank you.

@Lotti, thanks in advance for your willingness to contribute!

Besides Java, OpenLabeler uses JavaFX as the GUI framework extensively (especially the properties and binding), so you'll also have to be familiar in those areas as well.

To answer your specific questions:

  1. The preferences code is placed under the com.easymobo.openlabeler.preference package. Start from PreferencePane and go from there
  2. Preferences settings are stored using java.util.prefs.Preferences framework. Start by looking at com.easymobo.openlabeler.preference.Settings
  3. The local TensorFlow inference and training (using Docker Container) code is grouped under the com.easymobo.openlabeler.tensorflow package. Start from ObjectDetector#detect and you will understand how to integrate inferencing into OpenLabeler
  4. OpenLabeler currently doesn't expose any "plugins" framework or API. Perhaps you can specify your ideas/requirements in more detail, for example, state a few use cases