kinhong / OpenLabeler

OpenLabeler is an open source desktop application for annotating objects for AI appplications
Apache License 2.0
112 stars 11 forks source link

Inference and Training with Visual Recognition Cloud Services #11

Closed Lotti closed 2 years ago

Lotti commented 4 years ago

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:

Thank you.

kinhong commented 4 years ago

@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