Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is the command line tool from das-element for classification of image, sequence and movie files.

Tip

You can deploy it on your render farm to use it in a post-render process for labeling of elements.

Table of Contents


How To


Simple usage

classifier {file}

The file path can be to a single file (single image or movie file) or a sequence of files.

Code Block
languagebash
classifier /path/to/file.#.exr

# result:
{"/path/to/file.#.exr": [{"label": "fire", "description": "rapid oxidation of a material", "value": "Q3196"}]}


Multiple files

You can pass multiple file paths to the software.
classifier {file1} {file2} {file3}

Code Block
languagebash
classifier /path/to/files.#.exr /path/to/another/file.mov

# result:
{"/path/to/files.#.exr": [{"label": "fire", "description": "rapid oxidation of a material", "value": "Q3196"}],
"/path/to/another/file.mov": [{"label": "torch", "description": "stick with a flaming end used as a source of light", "value": "Q327954"}]}


Multiple results

Get the top X predicted categories by using the flag: --top {number}

Code Block
languagepowershell
classifier -top 3 /path/to/file.mov

# result:
{"/path/to/file.mov": [
      {"label": "torch", "description": "stick with a flaming end used as a source of light", "value": "Q327954"},
      {"label": "fire", "description": "rapid oxidation of a material", "value": "Q3196"},
      {"label": "flame", "description": "visible, gaseous part of a fire", "value": "Q235544"}
]}


Python Example

Here is an example code snippet that you could use in your python code.

Code Block
languagepy
# print the top 3 label predictions for a given file path

import json
import subprocess

path = '/path/to/file.mov'
command = ['./classifier', '--top', '3', path]
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = process.communicate()

if process.returncode != 0:
    print('Something went wrong: {} - Error: {}'.format(path, error))
else:
    result = json.loads(output)
    for path, predictions in result.items():
        wikidata_ids = [item['value'] for item in  predictions]  # list of IDs from wikidata
        readable_labels = [item['label'] for item in predictions]  # list of human readable labels
        print('For path: "{}" predicted the labels: {}'.format(path, ', '.join(readable_labels)))

# result:
# For path: "/path/to/file.mov" predicted the labels: torch, flame, fire

Result Format

For each file path you get an list of predictions for labels.

Info

The result is in JSON format. The default string format is Unicode.

Code Block
languagejson
{'/path/to/file.mov': [{
                          'value': 'Q327954',
                          'label': 'torch',
                          'description': 'stick with a flaming end used as a source of light'
                        }]}

key

description

value

identifier value - see here for more details

label

human readable text of this category

description

description text for this category

Flags

These are the flags that can be set

flag

description

--info

Shows information the software.
List all categories that this version of the model can classify.

id - the identifier for the class from Wikidata
human-readable - readable label
synonym - a list of different words for this class

--top {number}

Get the top X predictions of labels

--debug

debugging mode