Эх сурвалжийг харах

Implemented Kalman denoise filter.

jcsyshc 2 жил өмнө
parent
commit
6e02df27a5

+ 4 - 4
data/config.yaml

@@ -42,12 +42,12 @@ sender:
 
 sophiar:
   config: ./sophiar_config.json
-  left_camera_trans_var: left_camera_in_tracker
-  right_camera_trans_var: right_camera_in_tracker
+  left_camera_trans_var: left_camera_in_tracker_denoised
+  right_camera_trans_var: right_camera_in_tracker_denoised
   probe_model: /home/tpx/data/stls/Probe.stl
   augment:
     - name: Femur
-      trans_var: femur_in_tracker
+      trans_var: femur_in_tracker_denoised
       stl_file: /home/tpx/project/RemoteAR3/data/femur.stl
       registration:
         collect_obj: point_picker_in_femur_ref
@@ -55,7 +55,7 @@ sophiar:
         target_var: femur_in_femur_ref
         probe_var: probe_in_femur
     - name: Tibia
-      trans_var: tibia_in_tracker
+      trans_var: tibia_in_tracker_denoised
       stl_file: /home/tpx/project/RemoteAR3/data/tibia.stl
       registration:
         collect_obj: point_picker_in_tibia_ref

+ 56 - 4
data/sophiar_config.json

@@ -11,7 +11,7 @@
     {
       "name": "femur_in_femur_ref",
       "type": "transform_obj",
-      "value_": [
+      "value": [
         49.7073,
         -72.6173,
         -9.09289,
@@ -28,7 +28,7 @@
     {
       "name": "tibia_in_tibia_ref",
       "type": "transform_obj",
-      "value_": [
+      "value": [
         -3.91566,
         -85.3472,
         -42.0667,
@@ -113,6 +113,22 @@
     {
       "name": "picked_point_in_tibia",
       "type": "scalarxyz_obj"
+    },
+    {
+      "name": "left_camera_in_tracker_denoised",
+      "type": "transform_obj"
+    },
+    {
+      "name": "right_camera_in_tracker_denoised",
+      "type": "transform_obj"
+    },
+    {
+      "name": "femur_in_tracker_denoised",
+      "type": "transform_obj"
+    },
+    {
+      "name": "tibia_in_tracker_denoised",
+      "type": "transform_obj"
     }
   ],
   "object_list": [
@@ -281,7 +297,7 @@
       }
     },
     {
-      "type": "object_validity_watcher",
+      "type": "variable_validity_watcher",
       "name": "probe_visibility_watcher",
       "start_config": {
         "variable_name": "probe_in_tracker"
@@ -550,6 +566,38 @@
         "variable_name": "picked_point_in_tibia"
       }
     },
+    {
+      "type": "kalman_denoiser",
+      "name": "left_camera_denoiser",
+      "init_config": {
+        "variable_in": "left_camera_in_tracker",
+        "variable_out": "left_camera_in_tracker_denoised"
+      }
+    },
+    {
+      "type": "kalman_denoiser",
+      "name": "right_camera_denoiser",
+      "init_config": {
+        "variable_in": "right_camera_in_tracker",
+        "variable_out": "right_camera_in_tracker_denoised"
+      }
+    },
+    {
+      "type": "kalman_denoiser",
+      "name": "femur_denoiser",
+      "init_config": {
+        "variable_in": "femur_in_tracker",
+        "variable_out": "femur_in_tracker_denoised"
+      }
+    },
+    {
+      "type": "kalman_denoiser",
+      "name": "tibia_denoiser",
+      "init_config": {
+        "variable_in": "tibia_in_tracker",
+        "variable_out": "tibia_in_tracker_denoised"
+      }
+    },
     {
       "type": "empty_object",
       "name": "tracker_all",
@@ -559,7 +607,11 @@
         "probe_visibility_watcher",
         "camera_visibility_watcher",
         "femur_visibility_watcher",
-        "tibia_visibility_watcher"
+        "tibia_visibility_watcher",
+        "left_camera_denoiser",
+        "right_camera_denoiser",
+        "femur_denoiser",
+        "tibia_denoiser"
       ]
     },
     {

+ 1 - 0
src/main_ext.cpp

@@ -245,6 +245,7 @@ void load_config() {
     auto range = calc_valid_range(left.process_conf.camera,
                                   right.process_conf.camera,
                                   &augment_render_angle);
+    augment_render_angle *= 180 / std::numbers::pi;
     left.process_conf.valid_range = range;
     right.process_conf.valid_range = range;
 

+ 2 - 2
src/vtk_viewer.cpp

@@ -92,7 +92,7 @@ struct vtk_viewer::impl {
         window->InitializeFromCurrentContext();
         window->SetOffScreenRendering(true);
         window->SetAlphaBitPlanes(true);
-        window->FramebufferFlipYOn();
+//        window->FramebufferFlipYOn();
         window->SetIsCurrent(true);
 //        window->SwapBuffersOn();
 //        window->SetFrameBlitModeToNoBlit();
@@ -147,7 +147,7 @@ struct vtk_viewer::impl {
         auto view_pos = ImGui::GetWindowPos();
         auto x_pos = io.MousePos.x - view_pos.x;
         auto y_pos = io.MousePos.y - view_pos.y;
-        controller->SetEventInformationFlipY(x_pos, y_pos, io.KeyCtrl, io.KeyShift);
+        controller->SetEventInformation(x_pos, y_pos, io.KeyCtrl, io.KeyShift);
 
         // dispatch event
         if (ImGui::IsWindowHovered()) {