Command Line Tool (cli)
This is the command line tool from das-element.
It contains the API (supporting Python 2 & 3) and the classification of image, sequence and movie files.
You can deploy it on your render farm to use it in a post-render process for tagging of elements
Installation
Save the software to your preferred location. That’s all!
On Linux make sure to run this command to make the file executable:
chmod +x das-element-cli_{version}_lin
API
To learn more about the application programming interface (API) follow this link here.
Documentation
Python API
https://github.com/das-element/python-api
How To machine learning prediction
Each version will be shipped with the model inside. Use the info
flag to get the version number
Simple usage
das-element-cli.exe {file}
# Linux & Mac
das-element-cli predict /path/to/file.#.exr
# Windows
C:\das-element-cli.exe predict C:\path\to\file.#.exr
# result:
{"/path/to/file.#.exr": [{"tag": "fire", "description": "rapid oxidation of a material", "value": "Q3196"}]}
Valid file paths are …
single file (single image or movie file):
/path/to/file.exr
/path/to/file.mov
sequence of files
/path/to/sequence.#.exr
/path/to/sequence.%04d.exr
directory
the software will crawl the folder structure to find any media files or sequences
Multiple files
You can pass multiple file paths to the software.
das-element-cli.exe predict {file1} {file2} {file3}
das-element-cli.exe predict /path/to/files.#.exr /path/to/another/file.mov
# result:
{"/path/to/files.#.exr": [{"tag": "fire", "description": "rapid oxidation of a material", "value": "Q3196"}],
"/path/to/another/file.mov": [{"tag": "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}
das-element-cli.exe predict --top 3 /path/to/file.mov
# result:
{"/path/to/file.mov": [
{"tag": "torch", "description": "stick with a flaming end used as a source of light", "value": "Q327954"},
{"tag": "fire", "description": "rapid oxidation of a material", "value": "Q3196"},
{"tag": "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.
# print the top 3 tag predictions for a given file path
import json
import subprocess
path = '/path/to/file.mov'
command = ['./das-element-cli.exe', 'predict', '--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_tags = [item['tag'] for item in predictions] # list of human readable tags
print('For path: "{}" predicted the tags {}'.format(path, ', '.join(readable_tags)))
# result:
# For path: "/path/to/file.mov" predicted the tags: torch, flame, fire
Software info
Get information about the current software version and the categories that can be classified.
das-element-cli.exe info
key | description |
---|---|
| the identifier for the class from Wikidata |
| meaningful readable tag |
| a list of different words for this class |
Result Format
For each file path you get a list of predictions for tags.
The result is in JSON format. The default string format is Unicode.
File path gets returned as PosixPath with forwards slash, even for Windows.
{'/path/to/file.mov': [{
'value': 'Q327954',
'tag': 'torch',
'description': 'stick with a flaming end used as a source of light'
'parents': "parents": [{'id': 'Q3196', 'name': 'fire'}, {'id': 'Q235544', 'name': 'flame'}]
}]}
key | description |
---|---|
| identifier value - see here for more details |
| human readable text of this category |
| description text for this category |
| the parent tags based on the category hierarchy structure |
Flags for prediction
These are the flags that can be set for the prediction.
flag | description |
---|---|
| Shows information of the software. |
| Get the top X predictions of tags. The first two predictions are probably the most significant ones. |
| File path to another model file (.wit) |
| Set the number of frames of a filmstrip for a sequence of images or movie files. Example: for a sequence of 1000 frames only a number of frames get validated. This helps to speed up the process and still gets you a good result. |
Troubleshooting
issue | solution |
---|---|
MacOS shows unidentified developer for 'ffprobe' | For MacOS you should add the ffprobe to your trusted applications if you want to use the software. |
Windows startup is quite slow | Unfortunately that is an issue with Window that can not be fixed in the current moment. |