code: def test_real(self, device, dtype, data_url):
      data = torch.hub.load_state_dict_from_url(data_url)
      # This is not unit test, but that is quite good integration test
      for k in data.keys():
          if isinstance(data[k], torch.Tensor):
              data[k] = data[k].to(device, dtype)
  
      data["image0"] = rescale(
          data["image0"],
          0.5,
          interpolation="bilinear",
          align_corners=False,
      )
      data["image1"] = rescale(
          data["image1"],
          0.5,
          interpolation="bilinear",
          align_corners=False,
      )
  
      matcher = LocalFeatureMatcher(
          GFTTAffNetHardNet(1000), DescriptorMatcher("snn", 0.8)
      ).to(device, dtype)
      torch.manual_seed(8)  # issue kornia#2027
      tracker = HomographyTracker(matcher, matcher).to(device, dtype)
  
      with torch.no_grad():
          tracker.set_target(data["image0"])
          torch.manual_seed(8)  # issue kornia#2027
          homography, success = tracker(data["image1"])
      assert success
      pts_src = data["pts0"].to(device, dtype) / 2.0
      pts_dst = data["pts1"].to(device, dtype) / 2.0
      # Reprojection error of 5px is OK
      assert_close(
          transform_points(homography[None], pts_src[None]),
          pts_dst[None],
          rtol=5e-2,
          atol=5,
      )
  
file_path: kornia/test/tracking/test_planar_tracking.py
imports: import pytest
  import torch
  from kornia.feature import DescriptorMatcher, GFTTAffNetHardNet, LocalFeatureMatcher, SIFTFeature
  from kornia.geometry import rescale, transform_points
  from kornia.testing import assert_close
  from kornia.tracking import HomographyTracker
  from kornia.utils._compat import torch_version_le
label_desc: Use image node_id 3 for calling the TestHomographyTracker obj's underlying member method code with example usage: obj.test_real(device, dtype, data_url) without return types