diff --git a/beacon_ros2/config/rviz.rviz b/beacon_ros2/config/rviz.rviz
new file mode 100644
index 0000000000000000000000000000000000000000..b7ca700906519aa46074cc6589371edd6d3d381f
--- /dev/null
+++ b/beacon_ros2/config/rviz.rviz
@@ -0,0 +1,163 @@
+Panels:
+  - Class: rviz_common/Displays
+    Help Height: 78
+    Name: Displays
+    Property Tree Widget:
+      Expanded:
+        - /Global Options1
+        - /Status1
+      Splitter Ratio: 0.5
+    Tree Height: 380
+  - Class: rviz_common/Selection
+    Name: Selection
+  - Class: rviz_common/Tool Properties
+    Expanded:
+      - /2D Goal Pose1
+      - /Publish Point1
+    Name: Tool Properties
+    Splitter Ratio: 0.5886790156364441
+  - Class: rviz_common/Views
+    Expanded:
+      - /Current View1
+    Name: Views
+    Splitter Ratio: 0.5
+  - Class: rviz_common/Time
+    Experimental: false
+    Name: Time
+    SyncMode: 0
+    SyncSource: ""
+Visualization Manager:
+  Class: ""
+  Displays:
+    - Alpha: 0.5
+      Cell Size: 1
+      Class: rviz_default_plugins/Grid
+      Color: 160; 160; 164
+      Enabled: true
+      Line Style:
+        Line Width: 0.029999999329447746
+        Value: Lines
+      Name: Grid
+      Normal Cell Count: 0
+      Offset:
+        X: 0
+        Y: 0
+        Z: 0
+      Plane: XY
+      Plane Cell Count: 10
+      Reference Frame: <Fixed Frame>
+      Value: true
+    - Class: rviz_default_plugins/Image
+      Enabled: true
+      Max Value: 1
+      Median window: 5
+      Min Value: 0
+      Name: Image
+      Normalize Range: true
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /left_image
+      Value: true
+    - Class: rviz_default_plugins/Image
+      Enabled: true
+      Max Value: 1
+      Median window: 5
+      Min Value: 0
+      Name: Image
+      Normalize Range: true
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /right_image
+      Value: true
+  Enabled: true
+  Global Options:
+    Background Color: 48; 48; 48
+    Fixed Frame: map
+    Frame Rate: 30
+  Name: root
+  Tools:
+    - Class: rviz_default_plugins/Interact
+      Hide Inactive Objects: true
+    - Class: rviz_default_plugins/MoveCamera
+    - Class: rviz_default_plugins/Select
+    - Class: rviz_default_plugins/FocusCamera
+    - Class: rviz_default_plugins/Measure
+      Line color: 128; 128; 0
+    - Class: rviz_default_plugins/SetInitialPose
+      Covariance x: 0.25
+      Covariance y: 0.25
+      Covariance yaw: 0.06853891909122467
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /initialpose
+    - Class: rviz_default_plugins/SetGoal
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /goal_pose
+    - Class: rviz_default_plugins/PublishPoint
+      Single click: true
+      Topic:
+        Depth: 5
+        Durability Policy: Volatile
+        History Policy: Keep Last
+        Reliability Policy: Reliable
+        Value: /clicked_point
+  Transformation:
+    Current:
+      Class: rviz_default_plugins/TF
+  Value: true
+  Views:
+    Current:
+      Class: rviz_default_plugins/Orbit
+      Distance: 10
+      Enable Stereo Rendering:
+        Stereo Eye Separation: 0.05999999865889549
+        Stereo Focal Distance: 1
+        Swap Stereo Eyes: false
+        Value: false
+      Focal Point:
+        X: 0
+        Y: 0
+        Z: 0
+      Focal Shape Fixed Size: true
+      Focal Shape Size: 0.05000000074505806
+      Invert Z Axis: false
+      Name: Current View
+      Near Clip Distance: 0.009999999776482582
+      Pitch: 0.785398006439209
+      Target Frame: <Fixed Frame>
+      Value: Orbit (rviz)
+      Yaw: 0.785398006439209
+    Saved: ~
+Window Geometry:
+  Displays:
+    collapsed: false
+  Height: 846
+  Hide Left Dock: false
+  Hide Right Dock: false
+  Image:
+    collapsed: false
+  QMainWindow State: 000000ff00000000fd000000040000000000000292000002b4fc020000000afb0000000a0049006d006100670065010000003b000001690000002800fffffffb0000000a0049006d00610067006501000001aa000001450000002800fffffffb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007300000001a100000205000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f0000036bfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003b0000036b000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000780000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000025300fffffffb0000000800540069006d0065010000000000000450000000000000000000000218000002b400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+  Selection:
+    collapsed: false
+  Time:
+    collapsed: false
+  Tool Properties:
+    collapsed: false
+  Views:
+    collapsed: false
+  Width: 1200
+  X: 79
+  Y: 97
diff --git a/beacon_ros2/include/beacon_ros2/offline_process.h b/beacon_ros2/include/beacon_ros2/offline_process.h
index 3607acfc69cf02aa7f60d9657d44f6ebb87274f5..337db1c03e5d2e393621d214e4157ad9bd6c2186 100644
--- a/beacon_ros2/include/beacon_ros2/offline_process.h
+++ b/beacon_ros2/include/beacon_ros2/offline_process.h
@@ -37,7 +37,7 @@ class PohangStereoImageLoader : public rclcpp::Node {
 
   protected:
     void loadData() {
-        constexpr int batch_size{500};
+        constexpr int batch_size{100};
         constexpr int min_batch_size{10};
 
         if (!m_reader.has_next()) {
diff --git a/beacon_ros2/include/beacon_ros2/stereo_odometry_offline.h b/beacon_ros2/include/beacon_ros2/stereo_odometry_offline.h
index bd5c8fd0ecddda876d8674ef1117689fff784f11..07c387f6dbe6d8e0b39241022372cd37afd9f654 100644
--- a/beacon_ros2/include/beacon_ros2/stereo_odometry_offline.h
+++ b/beacon_ros2/include/beacon_ros2/stereo_odometry_offline.h
@@ -26,6 +26,7 @@ class StereoOdometryOffline
   protected:
     rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr m_left_img_pub{};
     rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr m_right_img_pub{};
+    rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr m_stereo_img_pub{};
 
   protected:
     // beaocn utility
diff --git a/beacon_ros2/src/stereo_odometry_offline.cpp b/beacon_ros2/src/stereo_odometry_offline.cpp
index 17316c48167e30f28262d8ee4529d240520ff547..e3cbaa046cb9d96b17d865832f67a9c9fdc8a472 100644
--- a/beacon_ros2/src/stereo_odometry_offline.cpp
+++ b/beacon_ros2/src/stereo_odometry_offline.cpp
@@ -14,6 +14,8 @@ StereoOdometryOffline::StereoOdometryOffline(const std::string& path_to_bag,
         this->create_publisher<sensor_msgs::msg::Image>("left_image", 10000);
     m_right_img_pub =
         this->create_publisher<sensor_msgs::msg::Image>("right_image", 10000);
+    m_stereo_img_pub =
+        this->create_publisher<sensor_msgs::msg::Image>("stereo_match", 10000);
 }
 
 /* ########################################################################## */
@@ -40,14 +42,17 @@ void StereoOdometryOffline::runImpl(StereoImageMsg msg) {
     display_right.header = right->header;
     display_right.encoding = right->encoding;
     m_right_img_pub->publish(*display_right.toImageMsg());
-    // m_right_img_pub->publish(*right->toImageMsg());
+
+    cv_bridge::CvImage display_stereo{};
+    display_stereo.image = display_imgs.stereo_match;
+    display_stereo.header = left->header;
+    display_stereo.encoding = left->encoding;
+    m_stereo_img_pub->publish(*display_stereo.toImageMsg());
 }
 
 /* ########################################################################## */
 void StereoOdometryOffline::loadParameter(const beacon::ParameterHandler& ph) {
     m_pipeline.loadParameter(ph);
-    m_pipeline.setCameraPair(beacon::Pinhole::create(),
-                             beacon::Pinhole::create());
 }
 
 /* ########################################################################## */