1 package com.neuronrobotics.bowlerkernel.djl;
3 import ai.djl.modality.cv.Image;
4 import ai.djl.modality.cv.transform.Normalize;
5 import ai.djl.modality.cv.transform.ToTensor;
6 import ai.djl.ndarray.NDArray;
7 import ai.djl.ndarray.NDList;
8 import ai.djl.translate.Pipeline;
9 import ai.djl.translate.Translator;
10 import ai.djl.translate.TranslatorContext;
20 NDArray array = input.toNDArray(ctx.getNDManager(), Image.Flag.COLOR);
21 Pipeline pipeline =
new Pipeline();
25 .add(
new Normalize(
new float[] { 127.5f / 255.0f, 127.5f / 255.0f, 127.5f / 255.0f },
26 new float[] { 128.0f / 255.0f, 128.0f / 255.0f, 128.0f / 255.0f }));
28 return pipeline.transform(
new NDList(array));
34 NDList result =
new NDList();
35 long numOutputs = list.singletonOrThrow().getShape().get(0);
36 for (
int i = 0; i < numOutputs; i++) {
37 result.add(list.singletonOrThrow().get(i));
39 float[][] embeddings = result.stream().map(NDArray::toFloatArray).toArray(
float[][]::
new);
40 float[] feature =
new float[embeddings.length];
41 for (
int i = 0; i < embeddings.length; i++) {
42 feature[i] = embeddings[i][0];
NDList processInput(TranslatorContext ctx, Image input)
float[] processOutput(TranslatorContext ctx, NDList list)