Fix processing timings in CVPipelineResult (#236)

This commit is contained in:
Banks T
2021-01-17 23:28:00 -05:00
committed by GitHub
parent d3c23345da
commit a113bd4192
4 changed files with 14 additions and 6 deletions

View File

@@ -44,6 +44,10 @@ public class MathUtils {
return nanos / 1000000.0;
}
public static double nanosToMillis(double nanos) {
return nanos / 1000000.0;
}
public static long millisToNanos(long millis) {
return millis * 1000000;
}

View File

@@ -26,19 +26,19 @@ import org.photonvision.vision.target.TrackedTarget;
public class CVPipelineResult implements Releasable {
private long imageCaptureTimestampNanos;
public final double processingMillis;
public final double processingNanos;
public final double fps;
public final List<TrackedTarget> targets;
public final Frame outputFrame;
public final Frame inputFrame;
public CVPipelineResult(
double processingMillis,
double processingNanos,
double fps,
List<TrackedTarget> targets,
Frame outputFrame,
Frame inputFrame) {
this.processingMillis = processingMillis;
this.processingNanos = processingNanos;
this.fps = fps;
this.targets = targets != null ? targets : Collections.emptyList();
@@ -73,6 +73,10 @@ public class CVPipelineResult implements Releasable {
return MathUtils.nanosToMillis(now - imageCaptureTimestampNanos);
}
public double getProcessingMillis() {
return MathUtils.nanosToMillis(processingNanos);
}
public long getImageCaptureTimestampNanos() {
return imageCaptureTimestampNanos;
}

View File

@@ -144,9 +144,9 @@ public class BenchmarkTest {
CVPipelineResult pipelineResult =
pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
pipelineResult.release();
processingTimes.add(pipelineResult.processingMillis);
processingTimes.add(pipelineResult.getProcessingMillis());
latencyTimes.add(pipelineResult.getLatencyMillis());
} while (System.currentTimeMillis() - benchmarkStartMillis < secondsToRun * 1000);
} while (System.currentTimeMillis() - benchmarkStartMillis < secondsToRun * 1000.0);
System.out.println("Benchmark complete.");
var processingMin = Collections.min(processingTimes);

View File

@@ -172,7 +172,7 @@ public class ShapeBenchmarkTest {
CVPipelineResult pipelineResult =
pipeline.run(frameProvider.get(), QuirkyCamera.DefaultCamera);
pipelineResult.release();
processingTimes.add(pipelineResult.processingMillis);
processingTimes.add(pipelineResult.getProcessingMillis());
latencyTimes.add(pipelineResult.getLatencyMillis());
} while (System.currentTimeMillis() - benchmarkStartMillis < secondsToRun * 1000L);
System.out.println("Benchmark complete.");