@luxonis/visualizer-protobuf 2.66.8 → 2.66.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{depth-B7VOdK0y.js → depth-BGin0LSZ.js} +15 -452
- package/dist/depth-coloring.worker-YB2xphzJ.js +84 -0
- package/dist/{deserialization.worker-GXEWF6Ah.js → deserialization.worker-CgJJ0wn7.js} +89 -6
- package/dist/{index-CUuB2DeV.js → index-BHSCyWTx.js} +26 -25
- package/dist/{index-D1xmWApp.js → index-BOSTLpqR.js} +3 -2
- package/dist/{index-C05AhKNz.js → index-BwR3Iw0A.js} +5 -5
- package/dist/{index-BxuDWAWd.js → index-C5g4sPQV.js} +5 -5
- package/dist/{index-CfLr9xrN.js → index-CFJCMpe3.js} +5 -5
- package/dist/{index-BYTVvykH.js → index-CMk3yuIe.js} +5 -5
- package/dist/{index-DxPt_hhw.js → index-CT4S0Kky.js} +5 -5
- package/dist/index-CmrbNJoW.js +405 -0
- package/dist/{index-CPFO1Uvg.js → index-Cux47RKo.js} +5 -5
- package/dist/{index-BkruEbO5.js → index-DKiZ2X4o.js} +5 -5
- package/dist/{index-UAnOeVfw.js → index-DgB4MyqP.js} +5 -5
- package/dist/{index-BRSoQ8_Y.js → index-DgsLl2EF.js} +5 -5
- package/dist/{index-BCNQjEez.js → index-DjfMAVx2.js} +7 -6
- package/dist/{index-BLaE8vrb.js → index-DoUU7hig.js} +5 -5
- package/dist/{index-DyM7JMrj.js → index-Dq_6x13l.js} +5 -5
- package/dist/{index-BqkFobGp.js → index-H7DkPNZj.js} +5 -5
- package/dist/{index-DIY7ddlQ.js → index-QTvh2vP4.js} +5 -5
- package/dist/{index-OV08AjM2.js → index-kNDsHDY4.js} +5 -5
- package/dist/{index-DgYMoCLL.js → index-v8qHRTgH.js} +5 -5
- package/dist/{index-DE5zu3LB.js → index-w7ND8d2T.js} +5 -5
- package/dist/index.js +2 -2
- package/dist/lib/src/connection/communicator.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +54 -39
- package/dist/lib/src/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.js +1 -1
- package/dist/lib/src/messaging/deserialization/pointcloud/poitcloudPoolManager.js.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.d.ts +6 -0
- package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.d.ts.map +1 -0
- package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.js +89 -0
- package/dist/lib/src/messaging/deserialization/video/depth-coloring.worker.js.map +1 -0
- package/dist/lib/src/messaging/deserialization/video/depth-to-pointcloud.d.ts +14 -0
- package/dist/lib/src/messaging/deserialization/video/depth-to-pointcloud.d.ts.map +1 -0
- package/dist/lib/src/messaging/deserialization/video/depth-to-pointcloud.js +38 -0
- package/dist/lib/src/messaging/deserialization/video/depth-to-pointcloud.js.map +1 -0
- package/dist/lib/src/messaging/deserialization/video/depth.d.ts +8 -7
- package/dist/lib/src/messaging/deserialization/video/depth.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization/video/depth.js +12 -22
- package/dist/lib/src/messaging/deserialization/video/depth.js.map +1 -1
- package/dist/lib/src/messaging/deserialization.worker.d.ts +3 -1
- package/dist/lib/src/messaging/deserialization.worker.d.ts.map +1 -1
- package/dist/lib/src/messaging/deserialization.worker.js +7 -4
- package/dist/lib/src/messaging/deserialization.worker.js.map +1 -1
- package/dist/lib/src/messaging/message-handler.d.ts.map +1 -1
- package/dist/lib/src/messaging/message-handler.js +1 -1
- package/dist/lib/src/messaging/message-handler.js.map +1 -1
- package/dist/{pointcloudFromDepth.worker-hil48rbC.js → pointcloudFromDepth.worker-CoUfUVnZ.js} +55 -40
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ export type DeserializeDepthAiMessageArgs = {
|
|
|
15
15
|
topic: string;
|
|
16
16
|
topicDecoders: TopicDecoders;
|
|
17
17
|
neuralCameraIntrinsics: NeuralCameraIntrinsics;
|
|
18
|
+
maxSteroDepth: number;
|
|
18
19
|
topicSizes: TopicSizes;
|
|
19
20
|
callback: (event: MessageEvent) => void;
|
|
20
21
|
} & ({
|
|
@@ -44,8 +45,9 @@ export declare function errorInstanceToErrorCode(error: Error): ErrorCode;
|
|
|
44
45
|
export type DeserializationErrorCallback = (errorCode: ErrorCode, topic: string, errorData?: unknown) => void;
|
|
45
46
|
export type DeserializationWorkerApi = {
|
|
46
47
|
initCallback: (cb: (event: MessageEvent) => void) => void;
|
|
47
|
-
handleMessageToDecode: ({ schema, buffer, topic, neuralCameraIntrinsics, }: FoxgloveMessage & {
|
|
48
|
+
handleMessageToDecode: ({ schema, buffer, topic, neuralCameraIntrinsics, stereoDepthMaxValue, }: FoxgloveMessage & {
|
|
48
49
|
neuralCameraIntrinsics: NeuralCameraIntrinsics;
|
|
50
|
+
stereoDepthMaxValue: number;
|
|
49
51
|
}, configStore: ConfigStore, errorCallback?: DeserializationErrorCallback) => void;
|
|
50
52
|
};
|
|
51
53
|
//# sourceMappingURL=deserialization.worker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialization.worker.d.ts","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGxE,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAEtG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialization.worker.d.ts","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGxE,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAEtG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAIpF,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAKlG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,KAAK,YAAY,EAAW,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,KAAK,QAAQ,EAAQ,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,EAAE,sBAAsB,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACzC,GAAG,CACA;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CACpC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,2BAA2B,GAAG,OAAO,CAAC;AAE9D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAMhE;AAUD,MAAM,MAAM,4BAA4B,GAAG,CACzC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,KAChB,IAAI,CAAC;AAiJV,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,KAAK,IAAI,CAAC;IAC1D,qBAAqB,EAAE,CACrB,EACE,MAAM,EACN,MAAM,EACN,KAAK,EACL,sBAAsB,EACtB,mBAAmB,GACpB,EAAE,eAAe,GAAG;QACnB,sBAAsB,EAAE,sBAAsB,CAAC;QAC/C,mBAAmB,EAAE,MAAM,CAAC;KAC7B,EACD,WAAW,EAAE,WAAW,EACxB,aAAa,CAAC,EAAE,4BAA4B,KACzC,IAAI,CAAC;CACX,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { deserializeImgDetectionsCustom } from "./deserialization/detections/cus
|
|
|
6
6
|
import { deserializeImgDetections } from "./deserialization/detections/detection.js";
|
|
7
7
|
import { deserializePointCloudData } from "./deserialization/pointcloud/point-cloud.js";
|
|
8
8
|
import { deserializeColorFrame } from "./deserialization/video/color.js";
|
|
9
|
+
import { deserializeDepthFrameToPointCloud } from "./deserialization/video/depth-to-pointcloud.js";
|
|
9
10
|
import { deserializeDepthFrame } from "./deserialization/video/depth.js";
|
|
10
11
|
import { deserializeEncodedFrameH264 } from "./deserialization/video/h264.js";
|
|
11
12
|
import { deserializeEncodedFrameH265 } from "./deserialization/video/h265.js";
|
|
@@ -28,7 +29,7 @@ let callback;
|
|
|
28
29
|
function initCallback(cb) {
|
|
29
30
|
callback = cb;
|
|
30
31
|
}
|
|
31
|
-
function handleMessageToDecode({ schema, buffer, topic }, configStore, errorCallback) {
|
|
32
|
+
function handleMessageToDecode({ schema, buffer, topic, stereoDepthMaxValue }, configStore, errorCallback) {
|
|
32
33
|
const handleDecodingError = (error) => {
|
|
33
34
|
// TODO: Enable this log once we fix topic unsubscription not working
|
|
34
35
|
// console.error("An error occurred during DAI message decoding.", error);
|
|
@@ -58,6 +59,7 @@ function handleMessageToDecode({ schema, buffer, topic }, configStore, errorCall
|
|
|
58
59
|
message,
|
|
59
60
|
callback,
|
|
60
61
|
type: protobufSchema.type,
|
|
62
|
+
maxSteroDepth: stereoDepthMaxValue,
|
|
61
63
|
}).catch(handleDecodingError);
|
|
62
64
|
}
|
|
63
65
|
catch (error) {
|
|
@@ -65,7 +67,8 @@ function handleMessageToDecode({ schema, buffer, topic }, configStore, errorCall
|
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
async function deserializeDepthAiMessage(args) {
|
|
68
|
-
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
71
|
+
const { topicDecoders, topicSizes, type, message, callback, topic, maxSteroDepth } = args;
|
|
69
72
|
switch (type) {
|
|
70
73
|
case "encodedFrame": {
|
|
71
74
|
if (!isCapableOfEncodedStream()) {
|
|
@@ -95,8 +98,8 @@ async function deserializeDepthAiMessage(args) {
|
|
|
95
98
|
break;
|
|
96
99
|
}
|
|
97
100
|
case Type.RAW16: {
|
|
98
|
-
|
|
99
|
-
await deserializeDepthFrame({ topic, message, callback });
|
|
101
|
+
deserializeDepthFrameToPointCloud({ topic, message, callback });
|
|
102
|
+
await deserializeDepthFrame({ topic, message, callback, maxSteroDepth: (maxSteroDepth / 1000) });
|
|
100
103
|
break;
|
|
101
104
|
}
|
|
102
105
|
default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialization.worker.js","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAmB,MAAM,2CAA2C,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAsB,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAqB,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAInF,OAAO,EAAiB,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAIxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"deserialization.worker.js","sourceRoot":"","sources":["../../../../src/messaging/deserialization.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnE,OAAO,EACL,4BAA4B,
|
|
1
|
+
{"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnE,OAAO,EACL,4BAA4B,EAE7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,EAAE,4BAA4B,KAAK,IAAI,CAAC;CAC1F,CAAC;AAaF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,cAAc,CAqB5F"}
|
|
@@ -20,7 +20,7 @@ export function createMessageHandler(callback) {
|
|
|
20
20
|
workerPool.set(topic, newWorker);
|
|
21
21
|
}
|
|
22
22
|
const proxiedCallback = errorCallback ? Comlink.proxy(errorCallback) : undefined;
|
|
23
|
-
worker.handleMessageToDecode({ schema, buffer, topic, neuralCameraIntrinsics }, ConfigStore.getInstance(), proxiedCallback);
|
|
23
|
+
worker.handleMessageToDecode({ schema, buffer, topic, neuralCameraIntrinsics, stereoDepthMaxValue: Number(localStorage.getItem("stereoDepthMaxValue") ?? "5.0") }, ConfigStore.getInstance(), proxiedCallback);
|
|
24
24
|
}),
|
|
25
25
|
};
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../../../src/messaging/message-handler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAE1D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAUnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,SAAS,UAAU,CAAC,QAAuC;IACzD,MAAM,UAAU,GAA6B,OAAO,CAAC,IAAI,CACvD,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAC9G,CAAC;IAEF,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,sBAAsB,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,IAAI,CAA0B,CAAC;AAE5H,MAAM,UAAU,oBAAoB,CAAC,QAAuC;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC/D,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,aAA4C,EAAE,EAAE;YACnF,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACvC,MAAM,GAAG,SAAS,CAAC;gBACnB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEjF,MAAM,CAAC,qBAAqB,CAC1B,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAC,mBAAmB,EAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAG,EACnI,WAAW,CAAC,WAAW,EAAE,EACzB,eAAe,CAChB,CAAC;QACJ,CAAC,CAA6B;KAC/B,CAAC;AACJ,CAAC"}
|
package/dist/{pointcloudFromDepth.worker-hil48rbC.js → pointcloudFromDepth.worker-CoUfUVnZ.js}
RENAMED
|
@@ -5,7 +5,7 @@ import { i as i420ToRgbaToPointcloud } from './utils-Hzt3wxhG.js';
|
|
|
5
5
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
6
6
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
7
7
|
/// <reference types="@webgpu/types" />
|
|
8
|
-
function depthToPointCloudBuffer(uint16Array, width, height, fx, fy) {
|
|
8
|
+
function depthToPointCloudBuffer(uint16Array, width, height, fx, fy, maxSteroDepth) {
|
|
9
9
|
const numPixels = width * height;
|
|
10
10
|
const points = new Float32Array(numPixels * 3);
|
|
11
11
|
for (let v = 0; v < height; v++) {
|
|
@@ -23,6 +23,13 @@ function depthToPointCloudBuffer(uint16Array, width, height, fx, fy) {
|
|
|
23
23
|
x = (u - imageCenterX) * scaledDepth / fx;
|
|
24
24
|
y = (v - imageCenterY) * scaledDepth / fy;
|
|
25
25
|
z = scaledDepth;
|
|
26
|
+
|
|
27
|
+
// Filter out points beyond maxSteroDepth
|
|
28
|
+
if (z > maxSteroDepth) {
|
|
29
|
+
x = 0.0;
|
|
30
|
+
y = 0.0;
|
|
31
|
+
z = 0.0;
|
|
32
|
+
}
|
|
26
33
|
}
|
|
27
34
|
const pointOffset = pixelIndex * 3;
|
|
28
35
|
points[pointOffset] = x;
|
|
@@ -62,6 +69,7 @@ struct Intrinsics {
|
|
|
62
69
|
i420Height: f32,
|
|
63
70
|
numFrames_f: f32,
|
|
64
71
|
bytesPerI420Frame_f: f32,
|
|
72
|
+
maxSteroDepth: f32,
|
|
65
73
|
};
|
|
66
74
|
|
|
67
75
|
struct OutputPointData {
|
|
@@ -129,44 +137,52 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|
|
129
137
|
let fx = intrinsics.fx;
|
|
130
138
|
let fy = intrinsics.fy;
|
|
131
139
|
let depthScale = intrinsics.depthScale;
|
|
140
|
+
let maxSteroDepth = intrinsics.maxSteroDepth;
|
|
132
141
|
if (rawDepthU16 > 0u && fx != 0.0 && fy != 0.0 && depthScale > 0.0) {
|
|
133
142
|
let z = f32(rawDepthU16) * depthScale;
|
|
134
143
|
let imageCenterX = f32(depthWidth) * 0.5;
|
|
135
144
|
let imageCenterY = f32(depthHeight) * 0.5;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
let
|
|
157
|
-
let
|
|
158
|
-
let
|
|
159
|
-
let
|
|
160
|
-
let
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
145
|
+
let x = (u - imageCenterX) * z / fx;
|
|
146
|
+
let y = (v - imageCenterY) * z / fy;
|
|
147
|
+
|
|
148
|
+
// Filter out points beyond maxSteroDepth
|
|
149
|
+
if (z <= maxSteroDepth) {
|
|
150
|
+
outputPoint.x = x;
|
|
151
|
+
outputPoint.y = y;
|
|
152
|
+
outputPoint.z = z;
|
|
153
|
+
|
|
154
|
+
if (i420WidthU > 0u && i420HeightU > 0u && bytesPerI420Frame > 0u) {
|
|
155
|
+
let i420X = min(i420WidthU - 1u, u32(floor(u * (intrinsics.i420Width / intrinsics.depthWidth))));
|
|
156
|
+
let i420Y = min(i420HeightU - 1u, u32(floor(v * (intrinsics.i420Height / intrinsics.depthHeight))));
|
|
157
|
+
let frameSizeY = i420WidthU * i420HeightU;
|
|
158
|
+
let uvWidth = (i420WidthU + 1u) / 2u;
|
|
159
|
+
let uvHeight = (i420HeightU + 1u) / 2u;
|
|
160
|
+
let frameSizeUV = uvWidth * uvHeight;
|
|
161
|
+
let uOffsetBytes = frameSizeY;
|
|
162
|
+
let vOffsetBytes = frameSizeY + frameSizeUV;
|
|
163
|
+
let yIndexBytes = i420Y * i420WidthU + i420X;
|
|
164
|
+
let uvX = i420X / 2u;
|
|
165
|
+
let uvY = i420Y / 2u;
|
|
166
|
+
let uvIndexBytes = uvY * uvWidth + uvX;
|
|
167
|
+
let uIndexBytes = uOffsetBytes + uvIndexBytes;
|
|
168
|
+
let vIndexBytes = vOffsetBytes + uvIndexBytes;
|
|
169
|
+
let i420BufferTotalElements = arrayLength(&i420Buffer);
|
|
170
|
+
if (yIndexBytes < bytesPerI420Frame && uIndexBytes < bytesPerI420Frame && vIndexBytes < bytesPerI420Frame && (i420_frame_offset + (vIndexBytes / 4u)) < i420BufferTotalElements) {
|
|
171
|
+
let y_byte = getI420Byte(yIndexBytes, i420_frame_offset, i420BufferTotalElements);
|
|
172
|
+
let u_byte = getI420Byte(uIndexBytes, i420_frame_offset, i420BufferTotalElements);
|
|
173
|
+
let v_byte = getI420Byte(vIndexBytes, i420_frame_offset, i420BufferTotalElements);
|
|
174
|
+
let y_f = f32(y_byte);
|
|
175
|
+
let u_f = f32(u_byte) - 128.0;
|
|
176
|
+
let v_f = f32(v_byte) - 128.0;
|
|
177
|
+
var r_f = y_f + 1.402 * v_f;
|
|
178
|
+
var g_f = y_f - 0.344136 * u_f - 0.714136 * v_f;
|
|
179
|
+
var b_f = y_f + 1.772 * u_f;
|
|
180
|
+
let r = u32(clamp(r_f, 0.0, 255.0)) & 0xFFu;
|
|
181
|
+
let g = u32(clamp(g_f, 0.0, 255.0)) & 0xFFu;
|
|
182
|
+
let b = u32(clamp(b_f, 0.0, 255.0)) & 0xFFu;
|
|
183
|
+
let a = 255u;
|
|
184
|
+
outputPoint.color = (r) | (g << 8u) | (b << 16u) | (a << 24u);
|
|
185
|
+
}
|
|
170
186
|
}
|
|
171
187
|
}
|
|
172
188
|
}
|
|
@@ -174,9 +190,8 @@ fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
|
|
|
174
190
|
xyzColorBuffer[global_output_idx] = outputPoint;
|
|
175
191
|
}
|
|
176
192
|
}
|
|
177
|
-
|
|
178
193
|
`;
|
|
179
|
-
async function depthToPointcloudGPU(depthFrames, depthWidth, depthHeight, fx, fy, cx, cy, i420Frames, i420Width, i420Height, {
|
|
194
|
+
async function depthToPointcloudGPU(depthFrames, depthWidth, depthHeight, fx, fy, cx, cy, i420Frames, i420Width, i420Height, maxSteroDepth, {
|
|
180
195
|
hasGPU
|
|
181
196
|
}) {
|
|
182
197
|
const numFrames = depthFrames.length;
|
|
@@ -207,7 +222,7 @@ async function depthToPointcloudGPU(depthFrames, depthWidth, depthHeight, fx, fy
|
|
|
207
222
|
continue;
|
|
208
223
|
}
|
|
209
224
|
try {
|
|
210
|
-
const xyzData = depthToPointCloudBuffer(depthFrame, depthWidth, depthHeight, fx, fy);
|
|
225
|
+
const xyzData = depthToPointCloudBuffer(depthFrame, depthWidth, depthHeight, fx, fy, maxSteroDepth);
|
|
211
226
|
results.push(i420ToRgbaToPointcloud(colorFrame, i420Width, i420Height, depthWidth, depthHeight, xyzData));
|
|
212
227
|
} catch (cpuError) {
|
|
213
228
|
console.error(`CPU Fallback: Error processing frame ${i}:`, cpuError);
|
|
@@ -241,7 +256,7 @@ async function depthToPointcloudGPU(depthFrames, depthWidth, depthHeight, fx, fy
|
|
|
241
256
|
}
|
|
242
257
|
const i420AlignedStrideBytes = Math.ceil(i420BytesPerFrame / 4) * 4;
|
|
243
258
|
const totalI420BufferSize = i420AlignedStrideBytes * numFrames;
|
|
244
|
-
const intrinsicsData = new Float32Array([fx, fy, cx, cy, depthScale, depthWidth, depthHeight, i420Width, i420Height, numFrames, i420BytesPerFrame]);
|
|
259
|
+
const intrinsicsData = new Float32Array([fx, fy, cx, cy, depthScale, depthWidth, depthHeight, i420Width, i420Height, numFrames, i420BytesPerFrame, maxSteroDepth]);
|
|
245
260
|
const intrinsicsBufferSize = Math.max(intrinsicsData.byteLength, 64);
|
|
246
261
|
intrinsicsBuffer = device.createBuffer({
|
|
247
262
|
label: "Intrinsics Buffer",
|
|
@@ -431,7 +446,7 @@ async function depthToPointcloudGPU(depthFrames, depthWidth, depthHeight, fx, fy
|
|
|
431
446
|
continue;
|
|
432
447
|
}
|
|
433
448
|
try {
|
|
434
|
-
const xyzData = depthToPointCloudBuffer(depthFrame, depthWidth, depthHeight, fx, fy);
|
|
449
|
+
const xyzData = depthToPointCloudBuffer(depthFrame, depthWidth, depthHeight, fx, fy, maxSteroDepth);
|
|
435
450
|
results.push(i420ToRgbaToPointcloud(colorFrame, i420Width, i420Height, depthWidth, depthHeight, xyzData));
|
|
436
451
|
} catch (cpuError) {
|
|
437
452
|
console.error(`CPU Fallback (error path): Error processing frame ${i}:`, cpuError);
|