Calibration for Surgical Navigation
The iterative calibration algorithm for C-arm imaging devices addresses the complexity of surgical navigation calibration by using a calibration fixture and tracking array, enabling precise and efficient image rendering for surgical navigation.
Patent Information
- Application Number
- JP2025539377
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-01-03
- Filing Date
- 2023-09-20
- Publication Date
- 2026-01-28
AI Technical Summary
C-arm calibration in surgical navigation is cumbersome and complex, often requiring hardware and artificial reference objects that obscure images and increase system complexity.
A method and system for calibrating C-arm imaging devices using an iterative calibration algorithm that generates a functional model for 2D navigation, allowing offline calibration with a calibration fixture and tracking array, refining parameters over time to improve accuracy without the need for extensive recalibration inputs.
Provides precise and efficient C-arm calibration for surgical navigation, reducing the complexity of the calibration process and enhancing image accuracy through iterative refinement of calibration parameters.
Smart Images

Figure 2026503255000001_ABST
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application is filed on September 20, 2023 as a PCT international patent application claiming priority to and benefit of U.S. patent application Ser. No. 18 / 149,523, filed on January 3, 2023, which is incorporated herein by reference in its entirety.
[0002] FIELD OF THE INVENTION FIELD The exemplary aspects described herein relate generally to surgical navigation, and more particularly to calibrating imaging systems for use in surgical navigation. [Background technology]
[0003] During fluoroscopy, the subject is positioned between an X-ray emitter and a detector. One type of X-ray emitter and detector used during surgery is known as a C-arm. An X-ray beam is emitted from the emitter to the detector as the beam passes through the subject. The detected X-rays result in an X-ray image that can be transmitted to one or more other devices for any of a variety of uses. Such images can be used to monitor the movement of a body part or an instrument. Additionally, the images can be used for navigation, such as 2D surgical navigation, to provide a real-time rendering of a handheld surgical instrument in its correct position within the medical image. This rendering allows the surgeon to understand the instrument's position. Fluoroscopy is typically modeled as a perspective projection, and the parameters of the projection are estimated through a calibration procedure. Precise in-procedure calibration is beneficial for accurate quantitative fluoroscopic guidance.
[0004] C-arms are typically calibrated intraoperatively using cumbersome hardware and artificial reference objects embedded in the x-ray images. Such calibration significantly increases the complexity of the system and represents a major obstacle to clinical practice.
[0005] The surgical navigation system can use and process the captured images to determine the spatial location and orientation of relevant anatomical features, implants, and instruments. An exemplary surgical navigation system is described in U.S. Patent Application Publication No. 2018 / 0092699, filed October 5, 2017 as Application No. 15 / 725,791, which is incorporated herein by reference for all purposes. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] Publication No. 2018 / 0092699 Summary of the Invention
[0007] The present disclosure provides methods and systems for providing C-arm calibration for surgical navigation. In an exemplary embodiment, there is a method of calibrating a C-arm imaging device, the method including: determining angulation and trajectory values of the C-arm imaging device for each of a plurality of positions of the C-arm imaging device; pre-operatively receiving images of a calibration fixture from the C-arm imaging device, the images being taken while the C-arm imaging device had the angulation and trajectory values; determining using a tracking system a position of the calibration fixture and a position of a tracking array positioned on the C-arm imaging device relative to a detector plane of a detector of the C-arm imaging device; determining intrinsic parameters using the images of the calibration fixture and the position of the calibration fixture; and determining extrinsic parameters using the position of the tracking array relative to the detector plane. The method also includes generating a model configured to receive as input trajectory values and angulation values of a current pose of the C-arm imager and configured to provide as output extrinsic and intrinsic parameters of the C-arm imager, where generating the model includes determining initial parameters using the intrinsic parameters, extrinsic parameters, angulation values, and trajectory values of a plurality of positions of the C-arm imager, determining intermediate parameters using the intrinsic parameters, angulation values, and trajectory values of the plurality of positions of the C-arm imager and a set of fixed extrinsic parameters, and determining final parameters using the initial and intermediate parameters. The intrinsic parameters may include a focal length, a first offset in a first axis between an emitter and a detector of the C-arm imager, and a second offset in a second axis between the emitter and the detector.The extrinsic parameters may include a first translation between the tracking array and the detector plane in a first axis, a second translation between the tracking array and the detector plane in a second axis, a third translation between the tracking array and the detector plane in a third axis, a first rotational offset between the tracking array and the detector plane in the first axis, a second rotational offset between the tracking array and the detector plane in the second axis, and a third rotational offset between the tracking array and the detector plane in the third axis. In some embodiments, at least two of the received images are taken while the C-arm imager is moving. Determining the intermediate parameters may include adjusting initial parameters to form the intermediate parameters. In an exemplary embodiment, the model is a functional model, and generating the model includes performing function fitting on the intrinsic parameters and the extrinsic parameters. For each of a plurality of positions of the C-arm imager, the images, the position of the calibration fixture, and the position of the tracking array positioned on the C-arm imager relative to the detector plane are time-synchronized. The method may further include using the model for at least three months without updating the model. Updating the model may include determining angulation values and trajectory values of the C-arm imager for two new positions of the C-arm imager, receiving new images of the calibration fixture from the C-arm imager, determining a position of the calibration fixture and a position of a tracking array positioned on the C-arm imager using an infrared tracking system, determining new intrinsic parameters using the new images of the calibration fixture and the position of the calibration fixture, and determining new extrinsic parameters using the position of the tracking array relative to the detector plane. Updating the final parameters may further include updating the final parameters based on the new intrinsic parameters, the new extrinsic parameters, the angulation values, and the trajectory values for the two new positions of the C-arm imager.
[0008] Another embodiment includes a system for calibrating a C-arm imaging device, the system including a calibration fixture configured to be imaged by the C-arm imaging device, a tracking array configured to be positioned on the C-arm imaging device, a tracker configured to track the calibration fixture and the tracking array, and a C-arm calibration device. The C-arm calibration device may comprise one or more processors and a memory, the memory including instructions that, when executed by the one or more processors, cause the one or more processors to: determine angulation values and trajectory values of the C-arm imaging device for each of a plurality of positions of the C-arm imaging device; pre-operatively receive images of the calibration fixture from the C-arm imaging device; determine, using the tracker, a position of the calibration fixture and a position of the tracking array positioned on the C-arm imaging device relative to a detector plane of a detector of the C-arm imaging device; determine intrinsic parameters using the images of the calibration fixture and the position of the calibration fixture; and determine extrinsic parameters using the position of the tracking array relative to the detector plane. The instructions may also cause the one or more processors to generate a model using the intrinsic parameters, extrinsic parameters, angulation values, and trajectory values for multiple positions of the C-arm imager. The memory may further include instructions for causing the one or more processors to perform an iterative functional calibration to refine the model. Performing the iterative functional calibration to refine the parameters includes fixing a set of extrinsic parameters, determining intermediate parameters using the intrinsic parameters, angulation values, and trajectory values for multiple positions of the C-arm imager and the fixed set of extrinsic parameters, and modeling final parameters of the C-arm imager using the parameters and the intermediate parameters. Modeling the initial parameters may include generating a functional model and determining final parameters of the C-arm imager using the parameters and the intermediate parameters. The model may be configured to receive the trajectory values and angulation values of a current pose of the C-arm imager as input and to provide the extrinsic and intrinsic parameters of the C-arm imager as output.Generating the model may include performing function fitting on the intrinsic parameters and the extrinsic parameters. The intrinsic parameters may include a focal length, a first offset in a first axis between an emitter and a detector of the C-arm imager, and a second offset in a second axis between the emitter and the detector. The extrinsic parameters may include a first translation in a first axis between the tracking array and the detector plane, a second translation in a second axis between the tracking array and the detector plane, a third translation in a third axis between the tracking array and the detector plane, a first rotational offset in the first axis between the tracking array and the detector plane, a second rotational offset in the second axis between the tracking array and the detector plane, and a third rotational offset in the third axis between the tracking array and the detector plane. The memory may include further instructions to cause the one or more processors to update the model after about three months. Updating the parameters may include determining angulation values and trajectory values of the C-arm imager for two new positions of the C-arm imager, causing the C-arm imager to capture new images of the calibration fixture, determining a position of the calibration fixture relative to the detector plane and a position of the tracking array positioned on the C-arm imager, determining new intrinsic parameters using the new images of the calibration fixture and the position of the calibration fixture, determining new extrinsic parameters using the position of the tracking array relative to the detector plane, and updating the model based on the new intrinsic parameters, the new extrinsic parameters, the angulation values, and the trajectory values for the two new positions of the C-arm imager. The system may further include a display device configured to display the images, and the memory further includes instructions that, when executed by the one or more processors, cause the one or more processors to render a surgical instrument at a position within the medical image and cause the display device to display the medical image including the rendered surgical instrument. Generating the model may be performed offline. [Brief explanation of the drawings]
[0009] The features and advantages of the exemplary embodiments of the invention presented herein will become more apparent from the detailed description set forth below when considered in conjunction with the following drawings. [Figure 1] 1 illustrates a system having one or more components in an operating room, according to an exemplary embodiment. [Figure 2] 1 illustrates an image of a calibration fixture captured by a C-arm imaging device, in accordance with an exemplary embodiment. [Figure 3] 1 illustrates a side perspective view of a C-arm imaging device, according to an exemplary embodiment. [Figure 4] 1 illustrates a diagram of an emitter, detector, and optional calibration markers of a C-arm imager, according to an exemplary embodiment. [Figure 5] 1 illustrates a diagram of the position of a C-arm imager when the C-arm imager captures images for calibration, according to an exemplary embodiment. [Figure 6] 1 illustrates a method for performing C-arm calibration, according to an exemplary embodiment. [Figure 7A] 7A and 7B comprise a medical image according to an exemplary use case. [Figure 7B] 7A and 7B comprise a medical image according to an exemplary use case. [Figure 8] 1 illustrates an exemplary computing environment that can be used to implement the techniques described herein. DETAILED DESCRIPTION OF THE INVENTION
[0010] Exemplary embodiments of the invention presented herein are directed to methods and systems for calibration of C-arm imaging devices for surgical navigation, etc. The surgical navigation can be two-dimensional (2D) navigation that includes the surgical field (e.g., the patient's spine) and real-time rendered surgical devices and instruments (e.g., screws, implants, inserters, scissors, screwdrivers, drills, probes, clamps, graspers, bone cutters, etc.).
[0011] In some embodiments, the C-arm calibration device operates to perform offline calibration, for example, in a separate procedure before live surgery is performed. Offline calibration can be contrasted with “online” calibration, which is performed during surgery. Online calibration often involves the use of cumbersome hardware and artificial reference objects embedded in the x-ray images due to the use of a tracking fixture with a grid of markers attached to the C-arm imaging device. The markers can obscure portions of the images captured by the C-arm imaging device.
[0012] In the exemplary techniques described herein, the C-arm calibration device can use an iterative calibration algorithm that, when executed by the C-arm calibration device, generates a functional model for use during 2D navigation and iteratively refines the functional model. The iterative calibration algorithm can provide the 2D navigation system with a functional model to use to improve the accuracy of surgical navigation. The initial offline calibration can include receiving images of a calibration fixture captured by the C-arm imaging device for multiple positions of the C-arm imaging device. The position of the calibration fixture relative to a detector plane of a detector of the C-arm imaging device and the position of a tracking array positioned on the C-arm imaging device can then be determined for each position using a tracking system (e.g., an infrared tracking system). The intrinsic parameters are determined using the images of the calibration fixture and the position of the calibration fixture for each position. The extrinsic parameters are determined using the position of the tracking array relative to the detector plane for each position. Initial parameters of the C-arm imager are modeled using intrinsic parameters, extrinsic parameters, angulation values, and other data such as trajectory and angulation values for multiple positions of the C-arm imager. Values for a set of fixed extrinsic parameters are then determined. Intermediate parameters of the C-arm imager are modeled using the intrinsic parameters, angulation values, and trajectory values for multiple positions of the C-arm imager and the set of fixed extrinsic parameters. Final parameters of the C-arm imager are then modeled using the initial and intermediate parameters. The final parameters may be used to confirm the calibration.
[0013] Embodiments of the C-arm calibration device disclosed herein operate to provide an updated calibration after an initial offline calibration (e.g., pre-operatively) by receiving new images of the calibration device from the C-arm imaging device at at least two positions, determining intrinsic and extrinsic parameters for the at least two positions, and refining the final parameters using the intrinsic and extrinsic parameters for the at least two positions. Thus, one advantage of the C-arm calibration device herein is that fewer inputs are required to recalibrate the C-arm imaging device than are required to perform the initial offline calibration.
[0014] In some embodiments, the C-arm calibration uses images of a stand-alone calibration fixture. The calibration fixture may have a standardized or otherwise known geometry (e.g., physical dimensions). The calibration fixture includes radiopaque fiducial markers (e.g., metal pellets) arranged in a known geometry. For example, the C-arm calibration device receives and / or stores the geometry of the calibration fixture and / or markers. Images of the calibration fixture are taken using the C-arm imaging device that the C-arm calibration device is calibrating. In an exemplary implementation, the C-arm imaging device captures and transmits images of the calibration fixture to the C-arm calibration device. The C-arm calibration device may include or otherwise operate a tracking device (e.g., a near-infrared tracking system), which operates to track the position of the calibration fixture, the radiopaque fiducial markers, and / or the C-arm imaging device. For example, the C-arm calibration device operates to determine the expected positions of the markers using the tracking device, the physical dimensions of the calibration jig, and / or the placement of the markers. In some embodiments, the calibration jig markers are used for standard camera resectioning. For example, in a reprojection process, the C-arm calibration device determines the positions of the calibration markers in images captured by the C-arm imaging device and the expected positions of the calibration markers, and compares the positions of the calibration markers in the images with the expected positions of the calibration markers. The C-arm calibration device may determine the expected positions of the calibration markers using the position of the C-arm imaging device, the position of the calibration jig, the dimensions of the calibration jig, and / or the placement of the calibration markers. Because the calibration jig is not necessarily attached to the C-arm imaging device, the calibration procedure may be performed offline rather than for all images used during surgery (“online”).
[0015] In some embodiments, the C-arm calibration device is operable to perform online calibration during a surgical procedure. In an exemplary implementation, the calibration fixture is positioned for calibration in addition to positioning the patient for imaging by the C-arm imaging device during surgery. Online calibration may be preferred, for example, for C-arm imaging devices that utilize an image intensifier.
[0016] The C-arm calibration device can use an iterative algorithm to estimate calibration parameters for different positions of the C-arm imaging device. For example, the C-arm imaging device can move with the orientation degrees of freedom of the C-arm imaging device. The orientation degrees of freedom can include a trajectory direction and an angulation direction. Generally, the trajectory direction is along the "C" of the C-arm imaging device, and the rotation axis is centered at the center of the C and perpendicular to the plane of the C. Angulation tilts the entire C forward or backward (e.g., perpendicular to the plane of the C). The angulation rotation axis is generally horizontal (e.g., passing along the anterior-posterior direction of the operator of the C-arm imaging device). This is typically perpendicular to the operating table. The C-arm imaging device can capture and transmit images of the calibration fixture for multiple trajectory and angulation positions. The C-arm calibration device can perform calibration at a series of trajectory and angulation positions. The C-arm calibration device can determine a series of positions, so the C-arm calibration device has sufficient information. For example, the C-arm calibration device selects the number and / or arrangement of positions for the C-arm imaging device to capture images to perform calibration for all positions of the C-arm imaging device. Thus, during surgery, a user can select any position of the C-arm imaging device, and the images used by the C-arm calibration device for calibration will be an arrangement and / or number of positions sufficient for the C-arm calibration device to accurately interpolate the calibration for any position of the C-arm imaging device.
[0017] FIG. 1 illustrates a system 100 having one or more components within an operating room, according to an exemplary embodiment. The system 100 includes a base unit 102 that supports a C-arm imager 103. The C-arm imager 103 includes an emitter 104 and a detector 105. The emitter 104 is operative to emit a radiation beam toward the detector 105. The detector 105, in some embodiments, includes a detector plane 106 that is operative to detect the radiation beam emitted by the emitter 104, which is received by the detector plane 106. Thus, the C-arm imager 103 may be operative to capture images using the emitter 104 and the detector 105. The C-arm imager 103 may further be operative to determine or otherwise store trajectory and angulation values, which together provide a position of the C-arm imager 103. For example, the C-arm imager 103 may move in a trajectory direction 140 and an angulation direction 145. The C-arm imager 103 may determine a trajectory value based on the position of the C-arm imager 103 in the trajectory direction 140. Similarly, the C-arm imager 103 may determine an angulation value based on the position of the C-arm imager 103 in the angulation direction 145.
[0018] In some embodiments, the tracking array 107 is attached to or otherwise connected to the C-arm imaging device 103. A calibration fixture 108 may be positioned between the emitter 104 and the detector 105, for example, to perform C-arm calibration. The calibration fixture 108 includes markers 109 that are visible in images captured by the C-arm imaging device 103. The system 100 includes a tracker 130. The tracker 130 operates to track the position of the calibration fixture 108, the position of the tracking array 107, etc. The tracker 130 tracks the tracking array 107 and / or the C-arm calibration device 120 for the C-arm calibration device 120 to determine the relative position of the calibration fixture 108 with respect to the C-arm imaging device 103. In an exemplary implementation, the tracker 130 is an infrared tracking system.
[0019] Base unit 102 includes control system 110. Control system 110 allows a user, such as a surgeon, to control the position of C-arm imager 103 and to control emitter 104 to cause emitter 104 to emit a radiation beam. Thus, the user can operate C-arm imager 103 to capture images, such as an image of calibration fixture 108, by causing emitter 104 to emit a radiation beam that is detected by detector 105.
[0020] The system 100 also includes a C-arm calibration device 120. The C-arm calibration device 120 can be a computing environment including a memory and a processor for executing digital and software instructions. An exemplary computing environment is described in more detail in FIG. 8 . The C-arm calibration device 120 can also include a display device 122 having a display 123 and an input device 125. A user can use the display device 122 and the input device 125 to have the C-arm calibration device 120 calibrate the C-arm imaging device 103. In some embodiments, the C-arm calibration device 120 communicates with the C-arm imaging device 103 to receive the position (e.g., trajectory and angulation values) of the C-arm imaging device 103 when the C-arm imaging device 103 captures an image. The C-arm calibration device 120 can also communicate with the tracker 130 to receive the position of the tracking array 107 and the calibration fixture 108 when the C-arm imaging device 103 captures an image. The C-arm calibration device 120 can cause the C-arm imaging device 103 to capture images, change positions, etc. The C-arm calibration device 120 can operate to cause the tracker 130 to track the tracking array 107, the calibration fixture 108, etc. In an exemplary implementation, the C-arm calibration device 120 receives time-synchronized images from the C-arm imaging device 103 and positions from the tracker 130. Thus, the C-arm calibration device 120 receives the position of the calibration fixture 108 and the position of the tracking array 107 when the C-arm imaging device 103 captures images. The C-arm calibration device 120 uses the physical dimensions of the tracker 130 and / or the calibration fixture 108 to determine the expected positions of the markers 109. The C-arm calibration device 120 may be co-located with the C-arm imaging device 103 or may be remotely located. In some examples, the C-arm calibration device 120 is part of a separate device or takes the form of software running on a separate device. In one example, there is a surgical cart that implements one or more aspects of the C-arm imaging device 103 or other devices or systems described herein.An exemplary surgical cart is described in U.S. Patent No. 2022 / 0296326, filed March 7, 2022 as Application No. 17 / 688,574, which is incorporated by reference herein in its entirety for all purposes.
[0021] In certain embodiments, once the C-arm calibration device 120 has calibrated the C-arm imaging device 103, a user can use the C-arm calibration device 120 for surgical navigation. For example, the display device 122 displays, via the display 123, a surgical field (e.g., a patient's spine) and real-time rendered surgical instruments positioned based on the calibration of the C-arm imaging device 103. The C-arm imaging device 103 operates to capture images of the surgical field and transmit the images to the C-arm calibration device 120 for display. A user, such as a surgeon, can use the input device 125 to select a view of the surgical field, select surgical instruments to be rendered within the view of the surgical field, etc. In one example, the C-arm calibration device 120 provides the calibration of the C-arm imaging device 103 to different devices that the user uses for surgical navigation.
[0022] 2 shows an image 200 of the calibration fixture 108 captured by the C-arm imager 103, according to an exemplary embodiment. The image 200 includes a marker 109. The weight of the C-arm imager 103 and other factors can cause the emitter 104 and detector 105 to become misaligned. The emitter 104 and detector 105 may have different alignments for different positions of the C-arm imager 103 (i.e., different trajectory and / or angulation values). Thus, the position of the marker 109 in the image 200 can deviate from the expected position due to the misalignment between the emitter 104 and detector 105. The C-arm calibration device 120 can operate to receive the image 200 from the C-arm imager 103 and perform C-arm calibration. In some embodiments, the C-arm calibration device 120 compares the positions of the markers 109 in the image 200 to the expected positions of the markers 109 using, for example, the tracker 130, the physical dimensions of the calibration jig 108, and / or the placement of the markers 109. The physical dimensions of the calibration jig 108 may include the positions (e.g., placement) of the markers 109. In this example, the markers 109 are placed in a linear pattern (although in other examples, the markers may have a spiral or other shaped pattern), and the physical dimensions of the calibration jig 108 may include the position of each marker 109 within the pattern. The markers 109 may be placed so that they clearly appear in the image captured by the C-arm imaging device 103 and / or be spaced apart to determine the positions of the markers 109, for example, by the C-arm calibration device 120.
[0023] FIG. 3 shows a side perspective view of a C-arm imager 103 according to an exemplary embodiment. An emitter 104 can emit a radiation beam 300, and a detector 105 detects the radiation beam 300. In the exemplary embodiment, the detector plane 106 detects the radiation beam 300 at a detection point 304 rather than at a center 310 of the detector plane 106 due to misalignment between the emitter 104 and the detector 105 due to environmental influences, such as gravity, on the detector 105 and / or the emitter 104. For example, the detector 105 and / or the emitter 104 are slightly deflected at the position of the C-arm imager 103 shown in FIG. 3. Therefore, the C-arm calibration device 120 determines intrinsic parameters of the position of the C-arm imager 103, such as the focal length (z-axis), the focal length 302, and the offset (x-axis and y-axis) between the detection point 304 and the center 310 of the detector plane, and uses these values for C-arm calibration.
[0024] FIG. 4 shows a diagram of the emitter of the C-arm imager 103, the detector plane 106, and an optional calibration marker 109. The positions of the emitter 402 of an ideal (e.g., properly aligned) C-arm and the emitter 404 of a misaligned C-arm imager are shown. The marker 109 (e.g., of the calibration fixture 108) imaged by the emitter 402 of the ideal C-arm imager results in an image of the marker 109 at a first position 412. The marker 109 imaged by the emitter 404 of the misaligned C-arm imager results in an image of the marker 109 at a second position 414. As shown, the emitter 402 of the ideal C-arm imager is at a first position 406 relative to the x- and y-axes of the detector plane 106. The emitter 404 of the misaligned C-arm imager is at a second first position 408 relative to the x- and y-axes of the detector plane 106. The first location 406 and the second location 408 are separated by an x-axis offset 416 and a y-axis offset 418 .
[0025] In an exemplary implementation, the C-arm calibration device 120 can determine how to correct for the misalignment to position the second position 414 as if the C-arm were properly calibrated or aligned. Additionally, or alternatively, the calibration can be used to predict the actual projection of the object onto the image if it were misaligned. In other words, the misalignment can be reversed to determine what a properly aligned C-arm imager would produce. In some instances, it may be sufficient to account for the misaligned C-arm imager so that the new object can be projected onto the image plane.
[0026] FIG. 5 shows a diagram 500 of the positions of the C-arm imager 103 when it captures images for calibration. Diagram 500 includes a static shot positioning setup 502 having a position 505 and a continuous shot positioning setup 510 having a position 515. A shot may refer to taking an X-ray image. For example, a static shot may be a single image taken when the C-arm imager 103 is stationary. As another example, a continuous shot may be a series of shots taken quickly one after the other, or a long exposure shot. In some embodiments, the C-arm imager 103 captures and transmits images of the calibration fixture 108, such as image 200, to the C-arm calibration device 120. The C-arm calibration device 120 receives the images at position 505 of the static shot position setup 502 as the C-arm imager 103 moves to one of the positions 505, stops moving, and then captures an image. In certain embodiments, the C-arm calibration device 120 receives images at position 515 of the continuous shot position setup 510 when the C-arm imaging device 103 moves to one of the positions 515 and captures images without stopping movement. When receiving images for calibration, the C-arm calibration device 120 may cause the C-arm imaging device 103 to capture a still shot or continuous shots. When capturing still shots, the C-arm calibration device 120, in some exemplary implementations, causes the C-arm imaging device 103 to capture a predetermined number of images (e.g., 50, 100) for calibration. When capturing continuous shots, the C-arm calibration device 120, in some exemplary implementations, may operate to cause the C-arm imaging device 103 to capture a predetermined number of spins (e.g., 5, 10, 20) of images for calibration.
[0027] The C-arm imaging device 103 may capture images at position 505 and / or position 515. In some embodiments, the C-arm imaging device 103 also transmits trajectory and / or angulation values of the C-arm imaging device 103 when the C-arm imaging device 103 captures an image (e.g., at position 505 or position 515). The C-arm imaging device 103 may be operable to capture and transmit images of the calibration fixture 108 for multiple positions of the C-arm imaging device 103 and transmit associated trajectory and angulation values for each image. Additionally, the tracker 130 transmits the position of the calibration fixture 108 and the position of the tracking array 107 to the C-arm calibration device 120 when the C-arm imaging device 103 captures an image of the calibration fixture 108. Thus, as the C-arm imaging device 103 captures images at different positions of the C-arm imaging device 103, the C-arm calibration device 120 receives images of the calibration fixture 108, the associated trajectory and angulation values for each image, and / or the associated positions of the tracking array 107 and the calibration fixture 108.
[0028] In some embodiments, the C-arm calibration device 120 performs camera resectioning using an image of the calibration jig 108 at the position of the C-arm imaging device 103 to determine intrinsic parameters (e.g., focal length and offset of the position of the C-arm imaging device 103). For example, the C-arm calibration device 120 uses the position of the calibration jig 108, the physical dimensions of the calibration jig 108, and / or the placement of the markers 109 to compare the positions of the markers 109 in the image to the expected positions of the markers 109. In an exemplary implementation, the C-arm calibration device 120 receives the physical dimensions of the calibration jig 108 from a user input, such as using a tracking device 130.
[0029] The C-arm calibration device 120 may also receive from the tracker 130 the position of the tracking array 107 relative to the detector plane 106. The C-arm calibration device 120 may perform camera resectioning using the position of the tracking array 107 relative to the detector plane 106 to determine a first translation in a first axis (e.g., the x-axis) between the tracking array 107 and the detector plane 106, a second translation in a second axis (e.g., the y-axis) between the tracking array 107 and the detector plane 106, a third translation in a third axis (e.g., the z-axis) between the tracking array 107 and the detector plane 106, a first rotational offset in the first axis between the tracking array 107 and the detector plane 106, a second rotational offset in the second axis between the tracking array 107 and the detector plane 106, and a third rotational offset in the third axis between the tracking array 107 and the detector plane 106. The three translational and three rotational offsets are extrinsic parameters. Therefore, the C-arm calibration device 120 performs camera resectioning using the position of the tracking array 107 relative to the detector plane 106 to determine the extrinsic parameters.
[0030] Once the C-arm calibration device 120 determines the intrinsic and extrinsic parameters associated with a series of positions of the C-arm imaging device 103, the C-arm calibration device 120 can use the intrinsic parameters, extrinsic parameters, angulation values, and trajectory values of the positions of the C-arm imaging device 103 to model initial parameters of the C-arm imaging device 103. A user can use the initial parameters for surgical navigation at any position of the C-arm imaging device 103.
[0031] Because the C-arm imager 103 is a physical object and should not have abrupt jumps in its internal geometry, the physical bending and droop of the C-arm imager 103 as a function of orientation can be understood to vary smoothly. Therefore, the C-arm calibration device 120 can model the intrinsic and extrinsic parameters using smoothly varying functions of trajectory value and / or angulation position. In some embodiments, the C-arm calibration device 120 performs function fitting for each parameter as a function of orientation and uses least-squares fitting to find the best-fit shape of the function. The C-arm calibration device 120 can determine a functional model (e.g., a polynomial of any order, a trigonometric function, or other more complex function) to match any particular C-arm imager.
[0032] Not all parameters may be completely independent. For example, an error in one parameter may be compensated for by an opposite error in another parameter or a combination of other parameters. Because the combined set of parameters can produce accurate results on the image due to the compensation between the errors, the presence of an error in a parameter may be masked for compensation. To improve the accuracy of the calibration, in some embodiments, the C-arm calibration device 120 may use a parameterization of the geometry of the C-arm imaging device 103 that separates the parameters into two parameter groups. The two groups include i) parameters that vary as a function of position and ii) parameters that remain fixed for all positions. The C-arm calibration device 120 determines fixed values for the second parameter group (fixed for all positions) and re-estimates the values of the first parameter group. This iterative estimation of the values allows for a more accurate estimation of the first parameter group without interference from offset errors in the second parameter group. In some embodiments, the C-arm calibration device 120 determines that the intrinsic parameters are part of a first set of parameters and the extrinsic parameters are part of a second set of parameters. Thus, the C-arm calibration device 120 determines values for a set of fixed extrinsic parameters, where the extrinsic parameters are held constant relative to the position and orientation of the C-arm imaging device 103. The C-arm calibration device 120 then models intermediate parameters of the C-arm imaging device 103 using the intrinsic parameters, angulation values, and / or trajectory values of the position of the C-arm imaging device 103 and the set of fixed extrinsic parameters. The C-arm calibration device 120 may use the intermediate parameters to adjust the initial functional model to create a functional model.
[0033] In some embodiments, the C-arm calibration device 120 then models the final parameters of the C-arm imager 103 using the initial and intermediate parameters. The C-arm calibration device 120 may compare and / or otherwise use the initial and intermediate parameters to determine the final parameters for the position of the C-arm imager 103. In an exemplary implementation, the model is a functional model including functions for determining each parameter at any position of the C-arm imager 103. The model may be configured to provide a specific output given a specific input. For example, the model may be configured to output extrinsic and intrinsic parameters. The input may be a trajectory value and an angulation value for the current pose of the C-arm imager 103. The model may be configured to have a form corresponding to a smoothly varying function (e.g., a polynomial). The C-arm calibration device 120 may retune the functional model to create a final functional model using the final parameters. The set of functions may then be used for surgical navigation. For example, when a user uses the C-arm calibration device 120 for surgical navigation, the C-arm calibration device 120 receives a C-arm image at a certain position, the C-arm calibration device 120 calculates parameters as a function of the trajectory value and the angulation value, and the C-arm calibration device 120 displays a surgical image and a rendered surgical instrument using the calculated parameters.
[0034] Thus, the C-arm calibration device 120 may perform an iterative functional calibration to generate a final functional model for surgical navigation. The C-arm calibration device 120 may use the parameters to calculate a projection of the instrument, and the C-arm calibration device 120 may operate to render the projection of the instrument on a display 123. The C-arm calibration device 120 may determine parameters for positions that were not used to determine the final parameters because the function estimates may vary smoothly with position, and the C-arm calibration device 120 determined parameters from the number and / or arrangement of positions to accurately model the complete functional model.
[0035] In some embodiments, the C-arm imager 103 experiences structural fatigue and / or other types of aging that can change the alignment of the emitter 104 and detector 105 and thus affect the accuracy of the calibration determined by the C-arm calibration device 120. Additionally, the tracker 130 may experience changes that also affect the calibration determined by the C-arm calibration device 120. Therefore, in some embodiments, the C-arm calibration device 120 also updates the calibration periodically (e.g., weekly, monthly, quarterly, pre-operatively, etc.). To update the calibration, the C-arm calibration device 120 receives images from the tracker 130 from two positions of the C-arm imager 103 and the associated positions of the calibration fixture 108 and tracking array 107 relative to the detector plane 106 as the C-arm imager 103 captures images. The C-arm calibration device 120 determines the intrinsic and extrinsic parameters using the images from the two positions, the associated angulation values for each image, the associated trajectory values for each image, the position of the calibration fixture 108, and / or the position of the tracking array 107 relative to the detector plane 106. The C-arm calibration device 120 then determines errors introduced since calibration and updates the modeled parameters (e.g., functional model). Because the functional model is created during the initial calibration, the C-arm calibration device 120 may not require many inputs to update the calibration.
[0036] 6 illustrates an exemplary method 600 for performing a C-arm calibration. The method 600 begins with operation 602.
[0037] In operation 602, the angulation and trajectory values of the C-arm imager are determined. For example, the C-arm calibration device 120 receives the angulation and trajectory values from the C-arm imager 103, and / or the C-arm calibration device 120 operates to determine the angulation and trajectory values using, for example, the tracking device 130. In another example, the device receives one or both of the angulation and trajectory values from a user who manually specifies the data. This operation can be performed before, during, or after an image is captured with the C-arm imager 103.
[0038] In operation 604, an image of the calibration fixture is received from the C-arm imaging device. The image may be taken while the imaging device has the angulation and trajectory values determined in operation 602. The C-arm calibration device 120 may receive the image from the C-arm imaging device 103. The C-arm calibration device 120 may cause the C-arm imaging device 103 to capture and transmit the image. In another example, the device receives one or more image files from a user who manually transfers one or more image files using a storage drive or another device. The image may include the calibration fixture 108. In some examples, the image is taken while the C-arm imaging device 103 is moving (as opposed to, for example, a still shot).
[0039] In operation 606, the position of the calibration fixture relative to the detector of the C-arm imaging device and the position of the tracking array positioned on the C-arm imaging device are determined. For example, the C-arm calibration device 120 uses the tracker 130 (e.g., using standard navigation techniques) to determine the position of the calibration fixture 108 and the position of the tracking array 107. In another example, the C-arm calibration device 120 receives the positions from a user who manually specifies the positions.
[0040] In operation 608, intrinsic parameters are determined, such as using the image of the calibration jig and the position of the calibration jig. The intrinsic parameters may include parameters specific to the C-arm imaging device, such as focal length and offset relative to the position of the C-arm imaging device 103. For example, the C-arm calibration device 120 determines the intrinsic parameters using the image of the calibration jig 108 received in operation 604 and the position of the calibration jig 108 determined in operation 606. Because the characteristics of the calibration jig 108 are known, the intrinsic parameters may be determined by working backwards. For example, it may be determined which intrinsic parameters cause a calibration feature with known characteristics to appear as shown in the image. In an exemplary implementation, the C-arm calibration device 120 compares the positions of the markers 109 in the image of the calibration jig to expected positions of the markers 109 based on the position of the calibration jig 108. Additionally, the C-arm calibration device 120 may use the physical dimensions of the calibration jig 108 to perform a comparison between the positions of the markers 109 in the image and the expected positions of the markers. The C-arm calibration device 120 can determine the physical dimensions of the calibration jig 108 (e.g., using the tracker 130), receive the physical dimensions (e.g., input by a user and stored in the C-arm calibration device 120), etc. Known camera resectioning techniques may be used to determine the parameters.
[0041] In operation 610, the extrinsic parameters are determined, such as using the position of the tracking array relative to the detector. For example, the C-arm calibration device 120 determines the extrinsic parameters using the position of the tracking array relative to the detector determined in operation 606. For example, the extrinsic parameters are three translational and three rotational offsets required to transform a position in space in the C-arm image to the space represented by the tracking array 107. In one example, based on the known position of the calibration fixture 108, the extrinsic parameters can be determined by working backwards. For example, it can be determined which extrinsic parameters cause a calibration feature having a known position to appear as shown in the image. Known camera resectioning techniques can be used to determine the parameters.
[0042] In some embodiments, the C-arm calibration device 120 determines the intrinsic parameters in operation 608 and the extrinsic parameters in operation 610 using a calibration algorithm stored and / or executed by the C-arm calibration device 120. The C-arm calibration device 120 may operate to input inputs to the calibration algorithm to perform operations 608 and 610. The inputs may include images of the calibration fixture 108 received in operation 604, dimensions of the calibration fixture including positions of the markers 109, positions of the calibration fixture 108 determined in operation 606, positions of the tracking array 107 determined in operation 606, etc., for multiple positions of the C-arm imaging device 103.
[0043] Thus, the C-arm calibration device 120 may input input values into a calibration algorithm and run the calibration algorithm to determine the intrinsic parameters in operation 608 and the extrinsic parameters in operation 610. The calibration algorithm determines the intrinsic parameters in operation 608 by comparing the positions of the markers 109 in images received from the C-arm imaging device 103 to the positions of the markers 109 expected using the dimensions of the tracker and / or calibration fixture 108. The calibration algorithm determines the extrinsic parameters in operation 610 using the position of the tracking array 107 relative to the detector plane 106.
[0044] In decision 612, it is determined, for example by the C-arm calibration device 120, whether another position of the C-arm imager 103 will be used for calibration. If the C-arm calibration device 120 determines that there is another position of the C-arm imager 103, the imager can be moved manually or automatically to that position (e.g., with new angulation and / or trajectory values), and method 600 can then return to operation 602. The imager of the C-arm calibration device 120 receives another image in operation 604, determines the position of the calibration fixture and tracking array in operation 606, determines the intrinsic parameters for the new position in operation 608, and determines the extrinsic parameters for the new position in operation 610. Operations 602, 604, 606, 608, and 610 can be repeated for any number of positions of the C-arm imager. For example, the C-arm imager may be moved manually or automatically to a predetermined set number of positions (or values) (eg, to change one or both of the angulation and trajectory values).
[0045] If the C-arm calibration device determines in decision 612 that there are no other positions of the C-arm imaging device for calibration, then method 600 proceeds to operation 613 .
[0046] In operation 613, a model is generated that can be used to improve the accuracy of images generated by the C-arm imager. In one example, the model is configured to receive as input trajectory and angulation values for the current pose of the C-arm imager. The model is also configured to provide as output extrinsic and intrinsic parameters of the C-arm imager. These output parameters can then be used to modify the image to correct for C-arm misalignment or other correctable defects. Additionally, or alternatively, the output parameters can be used to modify the rendering of the tool being navigated, so that instead of being rendered as if the C-arm imager were perfectly aligned, it is rendered for our particular misaligned C-arm imager. In some examples, the model is a smoothly varying function (e.g., a polynomial function).
[0047] Additionally or alternatively, the model is or is based on a machine learning framework (e.g., a neural network). Creation of the model can take any of a variety of forms. One or more aspects of the model may be implemented using or based on a machine learning framework. Exemplary machine learning frameworks include TENSORFLOW® by GOOGLE INC., PYTORCH by the PYTORCH community, and / or other open or closed-source machine learning libraries. A machine learning framework may include one or more machine learning models, which are structures for learning. A machine learning model may include one or more structures representing machine learning nodes (e.g., nodes of a neural network, decision tree, or other type of neural network), connections between nodes, weights, matrices, other structures, or combinations thereof. A machine learning framework may define procedures for establishing, maintaining, training, and using one or more machine learning models. Training a machine learning framework may include providing training samples as input to the machine learning framework in a useful format (e.g., after converting the training samples to the useful format), processing the samples using the machine learning framework, and receiving output from the machine learning framework. This output may be compared to an expected outcome defined in part relative to the training samples, and a loss determined using a loss function (e.g., mean squared error). The machine learning framework (e.g., its one or more models) may be modified based on the output (e.g., based on the difference between the output and the expected outcome). The training and modification process may be repeated until the error is sufficiently small.
[0048] The model may be generated in any of a variety of ways, including via act 614 , act 616 , and act 618 .
[0049] In operation 614, initial parameters of the C-arm imager or model are determined. For example, the C-arm calibration device 120 determines the initial parameters using the intrinsic parameters, extrinsic parameters, angulation values, and trajectory values for multiple positions of the C-arm imager 103. In an exemplary embodiment, the C-arm calibration device 120 determines the initial parameters using a calibration algorithm. As an example, during the determination of these initial parameters, it may be assumed that the physical bending and droop of the C-arm imager 103 varies smoothly as a function of orientation. Thus, the parameters may be modeled via smoothly varying functions of the orientation angle (e.g., one or both of the angulation and trajectory values). Function fitting may be performed for each geometric parameter as a function of orientation (e.g., using a standard least-squares fit to find the best-fit shape of the function). The functional form may be selected to match any particular C-arm imager (e.g., a polynomial of any order, a trigonometric function, or other more complex function).
[0050] In operation 616, intermediate parameters are determined, such as by the C-arm calibration device 120. This may involve using a unique parameterization of the imaging device geometry that separates two parameter groups: 1) parameters that vary as a function of orientation, and 2) parameters that remain essentially fixed (e.g., no change or change less than a certain threshold) for all orientations. In this operation, the values of the second group (essentially fixed orientation) are frozen, and the values of the parameters of the first group are redetermined. This may allow for a more accurate estimation of the first group without interference from offset errors in the second group. These errors may arise because not all geometry parameters are completely independent (e.g., an error in one may be compensated for by an opposite error in another or other combination). Because the combined set produces accurate results for the image, the presence of errors in the parameters may be masked for compensation.
[0051] In operation 618, the final parameters of the C-arm imager are determined. In this operation, in the final iteration, the final parameters are determined by re-estimating all parameters from both groups: 1) parameters that vary as a function of orientation, and 2) parameters that remain essentially fixed (e.g., no change or change less than a certain threshold) for all orientations. This brings each parameter closer to its true physical value, allowing the optimization to converge to a set of correct values (in a physical sense).
[0052] This iterative approach to building the model may result in better navigation accuracy for new images due to convergence closer to the correct calibration parameters. This calibration technique may generate a set of estimated functions for each geometric parameter (e.g., a second-order polynomial for focal length versus orientation). These functions may then be used during navigation. For example, a user may acquire a C-arm imager shot at an arbitrary orientation, and the system may then calculate the geometric parameters as a function of this orientation, which may then be used to calculate the projection of the navigated instrument onto the image plane. Because the function estimates vary smoothly with orientation and are sampled densely enough to accurately model the complete function, "off-grid" orientations are accurately handled. Calibration results may be stored in the navigation system and marked to correspond to the specific C-arm imager used for calibration.
[0053] Beneficially, the system can be configured so that the calibration can be updated quickly. Structural fatigue of the imaging device often changes (generally increasing) the amount of droop and sag of the imaging components. Therefore, the calibration has a finite lifespan (e.g., on the order of a few months, such as three months) under normal use conditions. Furthermore, the imaging device can suffer temporary damage that can suddenly change its internal geometry, potentially necessitating an updated calibration, regardless of how recent the last calibration was. Calibration also depends to some extent on the navigation device. Therefore, changes in the navigation device can render the stored calibration inaccurate. For these types of changes to the calibration, the error can be modeled as a single translation and rotation (or more generally, a six-degree-of-freedom transformation in 3D space), independent of the orientation of the C-arm imaging device. The system can quickly estimate this error by imaging a calibration phantom using only two orthogonal x-rays (e.g., fewer than all shots in the full grid of orientations performed in a complete calibration procedure). These two shots can be taken very quickly (eg, in less than a minute), the error calculated, and the stored calibration updated to remove the error.
[0054] In operation 620, the model is used intraoperatively. For example, the final functional model may be stored and used intraoperatively. In one example, the final functional model may be used as part of a surgical navigation system, such as that described in U.S. Patent No. 11,350,995 (filed October 5, 2017 as Application No. 15 / 725,791), which is incorporated herein by reference in its entirety for all purposes. In an exemplary use, the model is provided with trajectory and angulation values for the current pose of the C-arm imager that captured the images intraoperatively, and the model provides extrinsic and intrinsic parameters of the C-arm imager as output. These parameters are then used for any of a variety of purposes. In one example, the parameters are used to correct the images to correct for misalignment (or other correctable defects) of the C-arm imager. Additionally or alternatively, the parameters are used to correct the rendering process of the navigation system to match images from the misaligned C-arm imager.
[0055] In one example, the parameters are used for navigation. For example, when a new image is given, the model is used to determine values of these parameters for the pose of the new image so that navigation can occur. In another example, the parameters are used to calibrate the new image. Such calibration may be similar to "online" calibration techniques, in which intrinsic and extrinsic parameters are obtained for actual images during surgery.
[0056] FIG. 7, including FIGS. 7A and 7B, illustrates an exemplary medical image 700. The medical image 700 includes a first view 702 and a second view 704. A rendered instrument 710 is rendered on the first view 702 and the second view 704 based on a calibration performed by the C-arm calibration device 120. For example, the rendered instrument 710 is rendered based on a functional model (e.g., a final functional model) created during the calibration. In some embodiments, the C-arm calibration device 120 displays the medical image 700 on the display device 122. The medical image 700 can be used for surgical navigation during surgery. For example, the C-arm calibration device 120 displays the medical image 700 on the display device 122 and renders the rendered instrument 710 on the medical image 700 using the final functional model.
[0057] The notable difference is that Figure 7A shows rendered medical images 700 for various "online" calibrations, where a calibration object is attached to the C-arm imaging device 103, and therefore there are marker points 706 (e.g., small radiopaque BBs) in all images. Figure 7B shows the same rendered medical images 700 without such marker points 706, as they are not necessary for the offline calibration provided herein.
[0058] 8 illustrates an exemplary computing environment 800 that can be used to implement the techniques described herein. The computing environment 800 is a set of one or more virtual or physical computers configured to generate output based on data. In many examples, the computing environment 800 is a workstation, desktop computer, laptop computer, server, mobile computer, smartphone, tablet, embedded computer, other computer, or a combination thereof. In other examples, the computing environment 800 is a virtual machine, a group of computers, other computing environments, or a combination thereof.
[0059] In the depicted example, computing environment 800 includes one or more processors 810, memory 820, and an interface 830 coupled to a network 802. Network 802 is a communicatively coupled group of computing environments and associated hardware, such as a local area network, the Internet, other networks, or a combination thereof.
[0060] The one or more processors 810 are one or more physical or virtual components configured to receive and execute instructions. In many examples, the one or more processors 810 are central processing units, but may take other forms, such as a microcontroller, a microprocessor, an image processing unit, a tensor processing unit, another processor, or a combination thereof.
[0061] Memory 820 is one or more physical or virtual components configured to store information such as data or instructions. In some examples, memory 820 includes a computing environment's main memory (e.g., random access memory) or long-term storage memory (e.g., a solid-state drive). Memory may be a transient or non-transitory computer-readable or processor-readable storage medium.
[0062] Interface 830 is a set of one or more components by which computing environment 800 can provide output or receive input. For example, interface 830 may include one or more user input components, such as one or more sensors, buttons, pointers, keyboards, mice, gesture controls, touch controls (e.g., touch-sensitive strips or touch screens), eye trackers, voice recognition controls (e.g., microphones coupled to appropriate natural language processing components), other user input components, or combinations thereof. Interface 830 may also include one or more user output components, such as one or more lights, displays, speakers, haptic feedback components, other user output components, or combinations thereof. Interface 830 may further include one or more components configured to provide output to or receive input from other devices, such as one or more ports (e.g., USB ports, Thunderbolt ports, serial ports, parallel ports, Ethernet ports) or wireless communication components (e.g., components configured to communicate according to one or more radio frequency protocols such as WI-FI, BLUETOOTH®, ZIGBEE®, or other protocols).
[0063] The computing environment 800 may include one or more additional components or connections (eg, buses) between components.
[0064] The computing environment 800 may be configured to implement one or more aspects described herein, and the algorithms, steps, or procedures for so configuring the computing environment and performing the functions described herein can be understood from the description herein in light of knowledge in the art of how to implement computer functions.
[0065] The computing environment 800 may be configured to implement one or more aspects described herein, and the algorithms, steps, or procedures for so configuring the computing environment and performing the functions described herein can be understood from the description herein in light of knowledge in the art of how to implement computer functions.
[0066] Exemplary techniques for implementing such computer functionality include frameworks and technologies that provide universal plug-and-play capabilities for implementing desktop and browser-based applications (e.g., applications implementing aspects described herein). The framework can provide desktop web applications that feature or use an HTTP server, such as NODEJS or KATANA, and an embedded web browser control, such as CHROMIUM EMBEDDED FRAMEWORK or JAVA / .NET CORE Web View. The client-side framework can extend that concept by adding plug-and-play capabilities to the desktop and web shell to provide apps that can run both on the desktop and as web applications. One or more components can be implemented using the OWIN (Open Web Interface for .NET) component set built by MICROSOFT, which targets traditional .NET runtimes. KATANA, and by definition OWIN, allows middleware (OWIN-compliant modules) to be chained into a pipeline, thus providing a modular approach to building web server middleware. For example, a client-side framework can use the Katana pipeline, which features modules such as SIGNALR, security, and the HTTP server itself. Plug-and-play capabilities can provide a framework that allows run-time assembly of apps from available plugins. An app built on a plug-and-play framework can have dozens of plugins, some providing infrastructure-level functionality and others providing domain-specific functionality. The CHROMIUM EMBEDDED FRAMEWORK is an open-source framework for embedding the CHROMIUM browser engine with bindings for different languages, such as C# or JAVA.OWIN is a standard for interfacing between .NET web applications and web servers that aims to decouple the relationship between ASP.NET applications and IIS by defining a standard interface.
[0067] Further exemplary techniques for implementing such computer functions or algorithms include frameworks and technologies provided by or in conjunction with programming languages and associated libraries. For example, languages such as C, C++, C#, PYTHON®, JAVA®, JAVASCRIPT®, RUST, assembly, HASKELL, other languages, or combinations thereof may be used. Such languages may include or be associated with one or more standard or community-contributed libraries. Such libraries, left to those skilled in the art, can facilitate the creation of software based on the description herein, including receiving, processing, providing, and presenting data. Exemplary libraries for PYTHON® and C++ include OPENCV (e.g., which may be used to implement computer vision and image processing techniques), TENSORFLOW® (e.g., which may be used to implement machine learning and artificial intelligence techniques), and GTK (e.g., which may be used to implement user interface elements). Further examples include NUMPY for PYTHON® (e.g., which may be used to implement data processing techniques). Additionally, application programming interfaces may be provided with which other software can interact to implement one or more aspects described herein.For example, an operating system for a computing environment (e.g., a Linux-based operating system such as WINDOWS® by MICROSOFT CORP., MACOS® by APPLE INC., or UBUNTU by CANONICAL LTD.) or another component herein (e.g., a robot operating system such as IIQKA.OS or SUNRISE.OS by KUKA ROBOTICS CORPORATION, where the robot is a KUKA ROBOTICS CORPORATION model) may provide an application programming interface or library that can be used to implement aspects described herein. As a further example, a provider of a navigation system, laser console, wireless card, display, motor, sensor, or another component may provide not only the hardware component (e.g., the sensor, camera, wireless card, motor, or laser generator) but also software components (e.g., libraries, drivers, or applications) that can be used to implement features associated with the component.
[0068] While various descriptions of aspects of the present disclosure may refer to one or more surgeons, it should be understood that the functionality of such aspects may be extended to other users as the context requires, and as a result, the term "surgeon" supports the term "user." In some examples, the surgeon may be a surgical robot.
[0069] Examples herein include methods that include operations. While the operations in each figure are shown in sequential order, the operations may, in some cases, be performed in parallel and / or in an order different from that described herein. Additionally, various operations may be combined into fewer operations, divided into additional operations, and / or eliminated based on the desired implementation.
[0070] Additionally, the diagrams may illustrate the functionality of possible implementations. An operation may represent a module, segment, or portion of program code, which comprises one or more instructions executable by one or more processors (e.g., CPUs) to implement specific logical functions or steps in a process. The program code may be stored on any type of computer-readable medium, such as storage devices including, for example, disks or hard drives. The computer-readable medium may include, for example, non-transitory computer-readable media for storing short-term data, such as register memory, processor cache, or random access memory (RAM), and / or persistent long-term storage devices, such as read-only memory (ROM), optical or magnetic disks, or compact-disc read-only memory (CD-ROM). The computer-readable medium may enable or include any other volatile or non-volatile storage system. The computer-readable medium may be considered, for example, a computer-readable storage medium, a tangible storage device, or other article of manufacture. The computer-readable medium may be communicatively coupled to one or more processors. The one or more processors may be coupled to one or more interfaces for providing data to or receiving data from one or more users or other devices. Exemplary interfaces include a universal serial bus, a display, a speaker, a button, a networking component (e.g., a wired or wireless networking component), other interfaces, or a combination thereof.
[0071] The operations may represent circuitry hardwired to perform particular logical functions in a process. The exemplary method may be performed, in whole or in part, by one or more components within the cloud and system. However, it should be understood that the exemplary method may instead be performed by other entities or combinations of entities (e.g., by other computing devices and / or combinations of computer devices) without departing from the scope of the present invention. For example, certain operations may be performed entirely by a computing device (or a component of a computing device, such as one or more processors), or may be distributed across multiple components of a computing device, across multiple computing devices, and / or across servers.
Claims
1. 1. A method for calibrating a C-arm imaging device, comprising: For each of a plurality of positions of the C-arm imaging device: determining angulation and trajectory values for the C-arm imaging device; receiving pre-operatively an image of a calibration fixture from the C-arm imaging device, the image being taken while the C-arm imaging device had the angulation value and the trajectory value; determining a position of the calibration fixture and a tracking array positioned on the C-arm imaging device relative to a detector plane of a detector of the C-arm imaging device using a tracking system; determining an intrinsic parameter using the image of the calibration fixture and the position of the calibration fixture; determining an extrinsic parameter using the position of the tracking array relative to the detector plane; and generating a model configured to receive as input trajectory and angulation values of a current pose of the C-arm imaging device and to provide as output extrinsic and intrinsic parameters of the C-arm imaging device, wherein generating the model comprises: determining initial parameters using the intrinsic parameters, the extrinsic parameters, the angulation values, and the trajectory values for the multiple positions of the C-arm imaging device; determining intermediate parameters using the intrinsic parameters, the angulation values, and the trajectory values for the multiple positions of the C-arm imaging device and a set of fixed extrinsic parameters; and determining final parameters using the initial parameters and the intermediate parameters.
2. The intrinsic parameter is The focal length and a first offset in a first axis between an emitter and the detector of the C-arm imager; a second offset in a second axis between the emitter and the detector.
3. The extrinsic parameter is a first translation in a first axis between the tracking array and the detector plane; a second translation between the tracking array and the detector plane in a second axis; and a third translation between the tracking array and the detector plane in a third axis; and a first rotational offset about the first axis between the tracking array and the detector plane; a second rotational offset between the tracking array and the detector plane about the second axis; and a third rotational offset in the third axis between the tracking array and the detector plane.
4. The method of claim 1 , wherein at least two of the received images are taken while the C-arm imaging device is moving.
5. The method of claim 1 , wherein determining the intermediate parameters comprises adjusting the initial parameters to form the intermediate parameters.
6. the model is a functional model, The method of claim 1 , wherein generating the model comprises performing function fitting on the intrinsic and extrinsic parameters.
7. 2. The method of claim 1, wherein for each of the multiple positions of the C-arm imaging device, the image, the position of the calibration fixture, and the position of the tracking array positioned on the C-arm imaging device relative to the detector plane are time synchronized.
8. The method of claim 1 , further comprising using the model for at least three months without updating the model.
9. and updating the model, the updating comprising: For the two new positions of the C-arm imaging device: determining the angulation value and the trajectory value of the C-arm imaging device; receiving a new image of the calibration fixture from the C-arm imaging device; determining the position of the calibration fixture and the position of the tracking array positioned on the C-arm imaging device relative to the detector plane using the tracking system; determining new intrinsic parameters using the new image of the calibration fixture and the position of the calibration fixture; determining new extrinsic parameters using the position of the tracking array relative to the detector plane; and updating the model based on the new intrinsic parameters, the new extrinsic parameters, the angulation values, and the trajectory values for the two new positions of the C-arm imaging device.
10. 1. A system for calibrating a C-arm imaging device, comprising: a calibration fixture configured to be imaged by the C-arm imaging device; a tracking array configured to be positioned on the C-arm imaging device; a tracking device configured to track the calibration fixture and the tracking array; a C-arm calibration device comprising one or more processors and a memory, the memory including instructions that, when executed by the one or more processors, cause the one or more processors to: For each of a plurality of positions of the C-arm imaging device: determining angulation and trajectory values for the C-arm imaging device; receiving preoperative images of the calibration fixture from the C-arm imaging device; using the tracking device to determine a position of the calibration fixture and a position of the tracking array positioned on the C-arm imaging device relative to a detector plane of a detector of the C-arm imaging device; determining an intrinsic parameter using the image of the calibration fixture and the position of the calibration fixture; determining an extrinsic parameter using the position of the tracking array relative to the detector plane; and generating a model using the intrinsic parameters, the extrinsic parameters, the angulation values, and the trajectory values for the multiple positions of the C-arm imaging device.
11. 11. The system of claim 10, wherein the memory further comprises instructions that, when executed by the one or more processors, cause the one or more processors to perform an iterative functional calibration to improve the model.
12. performing the iterative functional calibration to improve the model; Fixing a set of extrinsic parameters; determining intermediate parameters using the intrinsic parameters, the angulation values, and the trajectory values for the multiple positions of the C-arm imaging device and the set of fixed extrinsic parameters; and determining final parameters of the C-arm imaging device using the parameters and the intermediate parameters.
13. 11. The system of claim 10, wherein the model is configured to receive as input trajectory and angulation values for a current pose of the C-arm imaging device and to provide as output extrinsic and intrinsic parameters of the C-arm imaging device.
14. The system of claim 10 , wherein generating the model comprises performing function fitting on the intrinsic parameters and the extrinsic parameters.
15. The intrinsic parameter is The focal length and a first offset in a first axis between an emitter and the detector of the C-arm imager; a second offset in a second axis between the emitter and the detector.
16. The extrinsic parameter is a first translation in a first axis between the tracking array and the detector plane; a second translation between the tracking array and the detector plane in a second axis; and a third translation between the tracking array and the detector plane in a third axis; and a first rotational offset about the first axis between the tracking array and the detector plane; a second rotational offset between the tracking array and the detector plane about the second axis; and a third rotational offset in the third axis between the tracking array and the detector plane.
17. 11. The system of claim 10, wherein the memory further comprises instructions that, when executed by the one or more processors, cause the one or more processors to update the model after about three months.
18. updating the model For the two new positions of the C-arm imaging device: determining the angulation value and the trajectory value of the C-arm imaging device; causing the C-arm imaging device to capture a new image of the calibration fixture; determining a position of the calibration fixture relative to the detector plane and a position of the tracking array positioned on the C-arm imaging device; determining new intrinsic parameters using the new image of the calibration fixture and the position of the calibration fixture; determining new extrinsic parameters using the position of the tracking array relative to the detector plane; and and updating the model based on the new intrinsic parameters, the new extrinsic parameters, the angulation values, and the trajectory values for the two new positions of the C-arm imaging device.
19. and a display device configured to display an image, wherein the memory includes further instructions that, when executed by the one or more processors, cause the one or more processors to: Rendering a surgical instrument at a location within the medical image; The system of claim 10 , further comprising causing the display device to display the medical image including the rendered surgical instrument.
20. The system of claim 10 , wherein generating the model is performed offline.
Citation Information
Patent Citations
Method for producing fabric and fabric
JP2018009269A