mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-21 01:01:41 +00:00
Fix processing timings in CVPipelineResult (#236)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.");
|
||||
|
||||
Reference in New Issue
Block a user