Identification of vascular pathways from one or more extravascular images.
The method enhances vascular pathway identification in medical imaging by generating a velocity map and smoothing techniques, reducing input points and enabling real-time adjustments, thus improving precision and efficiency.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- BOSTON SCIENTIFIC SCIMED INC
- Filing Date
- 2024-04-16
- Publication Date
- 2026-05-19
AI Technical Summary
Existing medical imaging techniques face challenges in accurately identifying vascular pathways, requiring numerous input points and lacking real-time adjustment capabilities for precise tracking and co-registration of extravascular and intravascular images.
A computer-implemented method for identifying vascular pathways using extravascular images, involving image processing to generate a velocity map, receive user-defined points, and determine the shortest path based on pixel distances, with smoothing and speckle reduction techniques to enhance accuracy.
Reduces the number of required input points, allows for easy adjustment of vascular pathways, and provides real-time feedback, improving the precision and efficiency of vascular pathway identification.
Smart Images

Figure 2026515662000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to medical imaging. More specifically, the present disclosure relates to identifying the path of blood vessels in medical images.
Background Art
[0002] Medical imaging is used to treat and diagnose vascular diseases. There are numerous imaging modalities used to generate medical images, including video, fluoroscopy, angiography, ultrasound, CT, MR, PET, PET-CT, CT angiography, SPECT, gamma camera imaging, optical coherence tomography (OCT), near-infrared spectroscopy (NIRS), vibration response imaging (VRI), optical imaging, infrared imaging, electrical mapping imaging, other forms of functional imaging, focused acoustic computed tomography (FACT), and optical frequency domain imaging (OFDI).
[0003] Furthermore, there are a variety of intraluminal medical devices used for both therapeutic and diagnostic purposes. Devices such as intravascular ultrasound (IVUS) probes, fractional flow reserve (FFR), and instantaneous flow reserve ratio (iFR) probes typically acquire intraluminal data while moving through the lumen.
[0004] Often, it is desirable to identify the physiological characteristics of the blood vessels to be treated. For example, the centerline of a blood vessel imaged externally can be determined to render a roadmap of the blood vessel and / or to co-register an external image with an intraluminal image (e.g., an IVUS image, etc.).
Summary of the Invention
[0005] In general, the disclosure provides a method for identifying the pathway of a vessel between at least two points in an extravascular image. The disclosure may be used in pre-processing and / or post-processing of percutaneous coronary intervention (PCI) to define the shape of a vessel and / or to co-registrate an extravascular image to an intravascular image.
[0006] This disclosure offers several advantages over prior art or conventional techniques for identifying vascular pathways. For example, this disclosure provides a significant reduction in the number of points that need to be provided (e.g., by a physician, etc.) to properly track or identify vascular pathways in extravascular imaging. Furthermore, this disclosure provides that a user (e.g., a physician, etc.) can easily adjust the identified vascular pathway (or shape) and receive real-time feedback of the adjusted or modified pathway.
[0007] In some embodiments, the present disclosure may be implemented as a computer-implemented method. The computer-implemented method includes the steps of: receiving an extravascular image from an extravascular imaging device, including a representation of a blood vessel; the processing circuit generating an image velocity map based on the extravascular image; the processing circuit receiving an indication of a first point on the extravascular image, the first point corresponding to a portion of a blood vessel; the processing circuit receiving an indication of a second point on the extravascular image based on the image velocity map, the second point corresponding to another portion of a blood vessel; and the processing circuit determining the path of a blood vessel based on the second point and the shortest distance from each of a plurality of pixels to the first point.
[0008] In further embodiments, the method may include the step of smoothing the path. In a further embodiment of the method, the path includes a midpoint, and the step of smoothing the path includes adding intermediate points along the path on both sides of the midpoint; identifying the shortest path from each of the intermediate points to each of the first and second points; selecting one line segment or curve segment from a plurality of line segments or curve segments connecting the intermediate points, based in part on the shortest paths from each of the intermediate points to each of the first and second points; and forming a path from the shortest path of the selected line segment or curve segment and the shortest paths from each of the intermediate points to each of the first and second points.
[0009] In a further embodiment, the method includes the step of a processing circuit generating an image velocity map, the step of despeckling an extravascular image to generate a despeckled extravascular image, normalizing the brightness and / or contrast of the despeckled extravascular image to generate a normalized extravascular image, and darkening the centerlines of vessels based in part on the despeckled extravascular image in order to generate an image velocity map.
[0010] In a further embodiment, the method includes the step of generating an image velocity map by a processing circuit, which further includes identifying ambient light in a speckle-despec
[0011] In a further embodiment, the method includes the step of identifying ambient light in a speckle-deselected image based on a blur filter having a median diameter between 30 pixels and 120 pixels.
[0012] In a further embodiment, the method includes the step of applying a Gaussian kernel to an extravascular image to remove speckle from the extravascular image. In a further embodiment of the method, the Gaussian kernel is a Gaussian kernel with a diameter of 3 pixels × 3 pixels.
[0013] In further embodiments, the method includes iteratively applying a mask to a portion of a normalized image to gradually darken pixels corresponding to portions of blood vessels represented on the normalized image based on the distance of pixels from the boundaries of blood vessels.
[0014] In a further embodiment, the method includes the step of applying a gradient transformation to a centerline-darkened image in order to generate a vascular velocity map. In further embodiments of the method, the gradient transformation is a sigmoid transformation or a linear transformation.
[0015] In a further embodiment, the method includes the steps of: a processing circuit identifying the shortest distance from each of a plurality of pixels on an image to a second point based on an image velocity map; receiving an instruction to move the position of a first point; and identifying an updated blood vessel path based on the first point after the move and the shortest distance from each of the plurality of pixels to the second point.
[0016] In a further embodiment, the method includes the steps of: a processing circuit identifying the shortest distance from each of a plurality of pixels on an image to a second point based on an image velocity map; receiving a midpoint indication on an extravascular image; and identifying an updated vascular path based on the shortest distance from the midpoint and each of the plurality of pixels to a first point, and the shortest distance from the midpoint and each of the plurality of pixels to the second point.
[0017] In some embodiments, the present disclosure is implemented as a computing device connected to an extravascular imaging machine (e.g., an angiography machine). The computing device comprises a processor and memory connected to the processor, the memory comprising a set of instructions that, when executed by the processor, cause the computing device to execute one of the methods described herein.
[0018] In some embodiments, the Disclosure is implemented as a computer-readable medium comprising a set of instructions that, when executed by the processor of the medical imaging device, cause the medical imaging device to perform any of the methods described herein.
[0019] In some embodiments, the present disclosure may be implemented as a computing device for an extravascular image processing system. The computing device comprises a processor and a memory device connected to the processor, the memory device comprising a set of instructions for causing the computing device, when executed by the processor, to receive an extravascular image including the representation of a blood vessel from an extravascular imaging device, generate an image velocity map by a processing circuit based on the extravascular image, receive an indication by the processing circuit for a first point corresponding to a portion of the blood vessel on the extravascular image, receive an indication by the processing circuit for a second point corresponding to another portion of the blood vessel on the extravascular image based on the image velocity map, and determine the path of the blood vessel by the processing circuit based on the second point and the shortest distance from each of a plurality of pixels to the first point.
[0020] In a further embodiment of the computing device, the path includes a midpoint, and the instruction set causes the computing device, when executed by the processor, to add intermediate points along the path on both sides of the midpoint, identify the shortest path from each intermediate point to each of the first and second points, select one line segment or curve segment from a plurality of line segments or curve segments connecting the intermediate points, based in part on the shortest paths from each intermediate point to each of the first and second points, and further form a path from the shortest path of the selected line segment or curve segment and the shortest paths from each intermediate point to each of the first and second points.
[0021] In a further embodiment of the computing device, the instruction set causes the computing device, when executed by the processor, to perform the following actions: despeckle the extravascular image to generate a despeckled extravascular image; identify ambient light in the despeckled extravascular image; remove ambient light from the despeckled extravascular image to form a light-adjusted extravascular image; normalize the brightness and / or contrast of the light-adjusted extravascular image; partially darken the vascular centerlines in the despeckled extravascular image to form a centerline-darkened image; and apply a gradient transform to the centerline-darkened image to generate an image velocity map.
[0022] In a further embodiment of the computing device, the instruction set causes the computing device, when executed by the processor, to identify ambient light in a speckle-deselected image based on a blur filter having a median diameter between 30 pixels and 120 pixels.
[0023] In some embodiments, the present disclosure may be implemented as a computer-readable medium for an extravascular imaging system. The computer-readable medium includes a set of instructions for the extravascular imaging system to receive an extravascular image from an extravascular imaging device, including a representation of a blood vessel, generate an image velocity map based on the extravascular image, receive instructions for a first point corresponding to a portion of the blood vessel on the extravascular image, receive instructions for a second point corresponding to another portion of the blood vessel on the extravascular image based on the image velocity map, and determine the path of the blood vessel based on the second point and the shortest distance from each of a plurality of pixels to the first point.
[0024] In a further embodiment of the computer-readable medium, when the set of instructions is executed by a processor of the extravascular image processing system, the extravascular image processing system is caused to add intermediate points along a path on both sides of a midpoint, identify the shortest paths from each of the intermediate points to each of a first point and a second point, select one line segment or curve segment from a plurality of line segments or curve segments connecting the intermediate points based at least in part on the shortest paths from each of the intermediate points to each of the first point and the second point, and form a path from the shortest path of the selected line segment or curve segment and the shortest paths from each of the intermediate points to each of the first point and the second point.
[0025] In a further embodiment of the computer-readable medium, when the set of instructions is executed by a processor of the extravascular image processing system, the extravascular image processing system is caused to remove speckle from an extravascular image to generate a speckle-removed extravascular image, identify ambient light in the speckle-removed extravascular image, remove the ambient light from the speckle-removed extravascular image to form a light-adjusted extravascular image, normalize the luminance and / or contrast of the light-adjusted extravascular image, darken a centerline of a blood vessel based at least in part on the speckle-removed extravascular image to form a centerline-darkened image, and apply a gradient transform to the centerline-darkened image to generate an image velocity map.
Brief Description of the Drawings
[0026] To easily identify the description of any element or operation, the most significant digit of the reference number refers to the number of the drawing in which that element first appears. [Figure 1] FIG. is a diagram showing an intravascular imaging system according to at least one embodiment of the present disclosure. [Figure 2] FIG. is a diagram showing an intravascular path identification system according to at least one embodiment of the present disclosure. [Figure 3] FIG. is a diagram showing a method of identifying an intravascular path according to at least one embodiment of the present disclosure. [Figure 4A] FIG. is a diagram showing a routed path on an extravascular image of a blood vessel according to at least one embodiment of the present disclosure. [Figure 4B] This figure shows a routed path on an extravascular image of a blood vessel according to at least one embodiment of the present disclosure. [Figure 4C] This figure shows a routed path on an extravascular image of a blood vessel according to at least one embodiment of the present disclosure. [Figure 4D] This figure shows a routed path on an extravascular image of a blood vessel according to at least one embodiment of the present disclosure. [Figure 5] This figure shows a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 6] This figure schematically illustrates a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 7] This figure shows a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 8] This figure shows a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 9] This figure schematically illustrates a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 10] This figure shows a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 11] This figure schematically illustrates a method for identifying vascular pathways according to at least one embodiment of the present disclosure. [Figure 12] This is a diagram showing a computer-readable storage medium. [Figure 13] This is a schematic diagram of the machine. [Modes for carrying out the invention]
[0027] As described above, this disclosure provides systems and techniques for identifying vascular routes on extravascular images of blood vessels. Accordingly, exemplary vascular imaging devices will be described. Figure 1 shows a combined internal and external imaging system 100 that includes both an intraluminal imaging system 102 (e.g., an IVUS imaging system) and an extravascular imaging system 104 (e.g., an angiography imaging system). The combined internal and external imaging system 100 further includes a computing device 106, which includes one or more circuits, controllers, and / or processors, as well as memory and software, configured to perform methods for vascular imaging and vascular route identification as described herein. It should be understood that the systems and methods described herein do not require intraluminal imaging, and a combined imaging system is described for clarity of explanation. For example, the image identification techniques described herein for identifying vascular routes or paths on extravascular images may be used to colregistrate extravascular images with a series of intravascular or intraluminal images. Generally, the intraluminal imaging system 102 is configured to generate intravascular imaging data (e.g., IVUS images), and the extravascular imaging system 104 is configured to generate extravascular imaging data (e.g., angiographic images).
[0028] The extravascular imaging system 104 may include a table 108 that can be positioned to provide sufficient space for positioning the C-arm 110 of the angiography / fluoroscopy unit in the working position relative to the patient 112 in contact with the drive unit. The C-arm 110 may be configured to acquire fluoroscopic images when no contrast agent is present in the patient's blood vessels and / or to acquire angiographic images when a contrast agent is present in the patient's blood vessels.
[0029] Raw radiographic image data acquired by the C-arm 110 can be transmitted to an extravascular data input port 114 via a transmission cable 116. The input port 114 may be a separate component, integrated into a computing device 106, or part of the computing device 106. The input port 114 may include a processor that converts the raw radiographic image data received by the input port 114 into extravascular image data (e.g., angiography data / fluoroscopy image data) in the form of, for example, live video, DICOM, or a series of individual images. The extravascular image data may first be stored in memory within the input port 114 or in memory of the computing device 106. If the input port 114 is a separate component from the computing device 106, the extravascular image data may be transferred to the computing device 106 via the transmission cable 116 and input to an input port (not shown) of the computing device 106. In some alternative configurations, communication between devices or processors may be performed via wireless communication rather than by cables as shown.
[0030] Intravascular imaging data may be, for example, IVUS data or OCT data acquired by an intravascular imaging system 102. The intravascular imaging system 102 may include an intravascular imaging device such as an imaging catheter 120. The imaging catheter 120 is configured to be inserted into the body of the patient 112 such that the distal end of the imaging catheter 120, including a diagnostic assembly or a diagnostic probe 122 (e.g., an IVUS probe), is near a desired imaging location in the blood vessel. Radiopaque material or a marker 124 placed on or near the probe 122 may provide an indicator of the current position of the probe 122 in the radiographic image. In some embodiments, the imaging catheter 120 and / or probe 122 may include a guide catheter (not shown) inserted into the lumen of the subject (e.g., a blood vessel such as a coronary artery) via a guide wire (not shown). However, in some embodiments, the imaging catheter 120 and / or probe 122 may be inserted into the blood vessel of the patient 112 without the use of a guide wire.
[0031] In some embodiments, the imaging catheter 120 and / or probe 122 may include other data acquisition functions in addition to imaging functions. For example, data related to FFR and / or iFR data, pressure, flow rate, temperature, electrical activity, oxygenation, biochemical composition, or any combination thereof. In some embodiments, the imaging catheter 120 and / or probe 122 may further include therapeutic devices such as stents, balloons (e.g., angioplasty balloons), grafts, filters, valves, and / or different types of therapeutic intraluminal devices.
[0032] The imaging catheter 120 is coupled to a proximal connector 126 to connect the imaging catheter 120 to the image acquisition device 128. The image acquisition device 128 may be connected to a computing device 106 via a transmission cable 116 or a wireless connection. Intravascular image data may first be stored in the memory of the image acquisition device 128 or in the memory of the computing device 106. If the image acquisition device 128 is a separate component from the computing device 106, the intravascular image data may be transferred to the computing device 106, for example, via the transmission cable 116.
[0033] The computing device 106 may also include one or more additional output ports for transferring data to other devices. For example, the computer may include an output port for transferring data to a data archive or memory device 132. The computing device 106 may also include a user interface (described in more detail below) which includes circuits, processing components, and a combination of instructions executable by the processing components and / or circuits, in order to enable the image recognition and vascular routing or pathfinding described herein, and / or the dynamic colregistration of intravascular and extravascular images using the identified vascular paths.
[0034] In some embodiments, the computing device 106 may include user interface devices such as a keyboard, mouse, joystick, touchscreen device (such as a smartphone or tablet computer), touchpad, trackball, voice command interface, and / or other types of user interfaces known in the art.
[0035] The user interface may be rendered and displayed on a display 134 connected to a computing device 106 via a display cable 136. Although the display 134 is shown as separate from the computing device 106, in some examples the display 134 may be part of the computing device 106. Alternatively, the display 134 may be remote from the computing device 106 and wirelessly connected. In another example, the display 134 may be part of a different computing device from the computing device 106, such as a tablet computer, which may be connected to the computing device 106 via a wireless or wired connection. In some applications, the display 134 includes a head-up display and / or a head-mounted display. In some applications, the computing device 106 generates output on different types of visual, text, graphics, haptic, audio, and / or video output devices (e.g., speakers, headphones, smartphone, or tablet computer). In some applications, the user interface rendered on the display 134 functions as both an input and output device.
[0036] Figure 2 shows a vascular pathway identification system 200, an example of which is not limited to the present disclosure. Generally, a vascular pathway identification system 200 is a system for identifying vascular pathways or routes from extravascular images (e.g., angiography). In some embodiments, the vascular pathway identification system 200 may be implemented as part of a combined internal and external imaging system 100, as shown in Figure 1. For example, the vascular pathway identification system 200 includes a computing device 202, which may be the computing device 106 in Figure 1. In the vascular pathway identification system 200, the computing device 202 is connected to an imager 204 (e.g., a C-arm 110). Similarly, the computing device 202 is connected to a display 206 (e.g., a display 134).
[0037] Generally, the imager 204 can generate information elements or data, including indications of the extravascular image 218. The computing device 202 is communicatively connected to the imager 204 and can receive data, including indications of the extravascular image 218, from the imager 204. Generally, the extravascular image 218 may include pixels that indicate the contrast and color of the extravascular image. This will be explained in more detail below.
[0038] The computing device 202 can be any of a variety of computing devices. In some embodiments, the computing device 202 may be integrated into the console of the display 206 and / or implemented by the console of the display 206. In some embodiments, the computing device 202 may be a workstation or server communicatively connected to the imager 204 and / or the display 206. In yet other embodiments, the computing device 202 may be provided by a cloud-based computing device, such as computing as a service system accessible over a network (e.g., the Internet, an intranet, or a wide area network). The computing device 202 may include a processor 208, memory 210, input and / or output (I / O) devices 212, and a network interface 214.
[0039] Processor 208 may include, for example, circuitry or processor logic such as one of various commercially available processors. In some examples, processor 208 may include multiple processors, multithreaded processors, multicore processors (whether the multiple cores coexist on the same or separate dies), and / or other types of multiprocessor architectures in which multiple physically separate processors are linked in some way. In addition, in some examples, processor 208 may include a graphics processing portion, as well as dedicated memory, multithreading, and / or other parallel processing capabilities. In some examples, processor 208 may be an application-specific integrated circuit (ASIC) or a field-programmable integrated circuit (FPGA).
[0040] Memory 210 may include logic, part of which may include an array of integrated circuits forming a non-volatile memory for persistently storing data, or a combination of non-volatile and volatile memory. It should be understood that memory 210 may be based on any of various technologies. In particular, the array of integrated circuits included in memory 120 may be arranged to form one or more types of memory, such as dynamic random-access memory (DRAM), NAND memory, or NOR memory.
[0041] The I / O device 212 can be any of a variety of devices for receiving inputs and / or providing outputs. For example, the I / O device 212 may include a keyboard, mouse, joystick, foot pedal, display, touch-enabled display, haptic feedback device, LED, etc.
[0042] The network interface 214 may include logic and / or functions to support the communication interface. For example, the network interface 214 may include one or more interfaces that operate according to various communication protocols or standards for communication directly or over a network communication link. Direct communication may be achieved through the use of communication protocols or standards described in one or more industry standards (including derivatives and variations). For example, the network interface 214 may enable communication via buses such as PCIe (Peripheral Component Interconnect Express), NVMe (Non-Volatile Memory Express), Universal Serial Bus (USB), System Management Bus (SMBus), SAS (e.g., Serial Attached Small Computer System Interface (SCSI) interface, Serial AT Attachment (SATA) interface). Furthermore, the network interface 214 may include logic and / or functions that enable communication via various wired or wireless network standards (e.g., 802.11 communication standards). For example, the network interface 214 may be configured to support wired communication protocols or standards such as Ethernet®. As another example, the network interface 214 may be configured to support wireless communication protocols or standards such as Wi-Fi, Bluetooth®, ZigBee®, LTE, 5G, etc.
[0043] The memory 210 may include a set of instructions 216, an extravascular image 218, an image velocity map 220, a point A (222) on the image, the shortest path to point A 224, a point B (226) on the image, a path 228 between A and B, and an image 230 having a path overlay.
[0044] Although points A(222) and B(226) are often referred to individually, it is important to note that points A(222) and B(226) on the image, as well as the path 228 between A and B, are not single but constitute a single leg of the overall path, and that path can have multiple legs. Accordingly, many embodiments of this disclosure assume multiple points A(222) and multiple points B(226) on the image (see, for example, Figures 9 and 10), as well as multiple paths or multiple “legs” of paths. For this purpose, these elements are shown in multiple forms in Figure 2. In some embodiments, the processor 208 can execute a set of instructions 216 to receive these points (for example, from a user via I / O) and store the points in memory 210. Similarly, the memory 210 can store a set of shortest paths 224 to each individual point A of a plurality of points, and paths between each pair of adjacent points in the image, point A(222) and point B(226) (for example, a path 228 between A and B).
[0045] In some embodiments, the processor 208 can execute a set of instructions 216 to identify points A(222) and B(226) on an image using a machine learning (ML) model. For example, an ML model (not shown) may be trained to infer pixels corresponding to blood vessels from an angiographic image (e.g., using a supervised training algorithm, an unsupervised training algorithm, etc.). The trained ML model may then be configured in operation so that points A(222) and B(226) on an image can be inferred from an extravascular image 218.
[0046] Examples of multiple points and paths are shown in more detail in Figure 9 below. However, for clarity, examples of multiple sections of a path are shown herein. Figure 9 shows the shortest paths 916a and 916b, which are two instances of path 228 between A and B. That is, the first point 904 and the second point 908 are multiple instances of point A(222) on the image, and the third point 914 represents two instances of point B(226) on the image.
[0047] During operation, the processor 208 can execute instruction set 216 to cause the computing device 202 to receive the extravascular image 218 from the imager 204. The processor 208 can further execute instruction set 216 to generate an image velocity map 220 from the extravascular image 218, receive (or infer) the indication of point A(222) on the image, and generate the shortest path 224 from all points 222 on the image and the image velocity map 220 to point A. Furthermore, the processor 208 can execute instruction set 216 to receive (or infer) point B(226) on the image, and identify the path 228 from point B(226) to A and B, and the shortest path 224 to point A. Furthermore, the processor 208 can execute instruction set 216 to generate an image 230 with a path overlay and display the image 230 with the path overlay on the display 206.
[0048] Figure 3 shows a logical flow 300 that can be performed by a computing device connected to an extravascular imaging device according to at least one embodiment of the present disclosure. The logical flow 300 may be performed by the computing device 106 of the combined internal and external imaging system 100 of Figure 1, or by the computing device 202 of the vascular pathway identification system 200 of Figure 2. For clarity, it should be noted that the logical flow 300 will be described with reference to the computing device 202 of the vascular pathway identification system 200 of Figure 2 and Figures 4A to 4D. Figures 4A to 4D show an extravascular image, a point indicated on the extravascular image, and the vascular pathway shown on the extravascular image. This will be described in more detail below.
[0049] The logic flow 300 can begin in block 302. In block 302, “In the processing circuit, receive an extravascular image from an extravascular imaging device,” the extravascular image, including a representation of a blood vessel, may be received in the processing circuit of the computing device. For example, the processor 208 may execute instruction set 216 to receive an extravascular image 218 from an imager 204 (e.g., a C-arm 110, etc.). Here, the extravascular image 218 is an extravascular image (e.g., angiography, fluoroscopy, etc.). For example, the extravascular image 218 may be like the extravascular image 400 shown in Figure 4A. As shown, the extravascular image 400 includes a representation of a blood vessel 402. In some embodiments, the processor 208 may execute instruction set 216 to display the extravascular image 218 as part of a graphical user interface (GUI) 232 shown on a display 206. In some embodiments, the processor 208 may execute a set of instructions 216 to provide a GUI 232 that enables a user (e.g., a physician) to view an angiography (e.g., an extravascular image 218), add, move, and / or delete points, and view the vascular shape (e.g., pathways) in real time as points are added, moved, or deleted.
[0050] Proceeding to block 304, "Processing circuit generates image velocity map based on extravascular image," the image velocity map may be generated by the processing circuit. For example, processor 208 may execute instruction set 216 to generate image velocity map 220 from extravascular image 218. Examples of image velocity maps are described below (e.g., Figures 5 and 6). However, generally, image velocity map 220 includes a copy of extravascular image 218, and the image contrast is adjusted so that the blood vessels represented in extravascular image 218 can be clearly distinguished from other parts of extravascular image 218.
[0051] Proceeding to block 306, “The processing circuit receives an instruction for a first point on the extravascular image. The first point corresponds to a portion of the blood vessel,” the processing circuit may receive a point on the extravascular image corresponding to a location on the blood vessel (or a portion thereof). For example, the processor 208 may execute instruction set 216 to receive point A(222) on the image (e.g., from the user via an input and / or output (I / O) device 212, etc.). In some embodiments, a physician can use a touchscreen, mouse, joystick, etc., to specify point A(222) on the image of the blood vessel on the extravascular image 218 (e.g., a proximal point). Figure 4B shows an extravascular image 400 and a blood vessel 402, with point 404 on the blood vessel 402 (e.g., point A(222) on the image) marked on the extravascular image 400. In some embodiments, the processor 208 may execute a set of instructions 216 to cause the GUI 232 to include a display of an extravascular image 218 with point A(222) marked on the image.
[0052] Proceeding to block 308, "The processing circuit identifies the shortest distance between each of the multiple pixels of the extravascular image and the first point based on the image velocity map," the shortest distance between the point received in block 306 and the multiple pixels of the extravascular image can be determined. It should be understood that the term "shortest distance" as used herein refers not to the shortest straight-line distance, but rather to the shortest path or distance along a pathway or vessel.
[0053] For example, in some embodiments, the processor 208 can execute instruction set 216 to identify the shortest path between point A(222) on the image and several other pixels in the extravascular image 218. In some embodiments, the processor 208 can execute instruction set 216 to identify several paths between point A(222) on the image and each pixel associated with a blood vessel (e.g., blood vessel 402) in the extravascular image 218, based on an image velocity map 220. In some embodiments, the processor 208 can execute instruction set 216 to identify several shortest paths 224 to point A between point A(222) on the image and each pixel in the extravascular image 218 (e.g., blood vessel 402), based on an image velocity map 220. In some embodiments, the processor 208 can execute instruction set 216 to identify paths based on a path-finding algorithm, such as Dijkstra's algorithm. In such an embodiment, the processor 208 can execute a set of instructions 216 to derive a path using a path-finding algorithm based on an image velocity map 220 with a priority queue (e.g., a Fibonacci heap).
[0054] In some embodiments, block 308 may include converting the image velocity map 220 into a cost graph (not shown) (e.g., as a preceding block or implicitly embodied in block 308). The cost graph can be used to identify the shortest distance between each of several pixels in an extravascular image and a first point. For example, a pathfinding algorithm (e.g., Dijkstra's algorithm) can use the cost graph to identify the path with the lowest cost as the shortest path. It should be understood that the graphs used herein are graphs in a mathematical sense, consisting of nodes and edges. In some embodiments, each node represents a pixel in the velocity map, and each edge represents a connection between adjacent pixels and the associated cost for moving between adjacent pixels. The edge cost value is based on the velocity value of the moving pixel and the length of the edge. The number of edges (e.g., neighbors) per node (e.g., pixel) can vary, but is generally 4, 8, 16, 24, 32, etc.
[0055] Proceeding to block 310, “The processing circuit receives instructions for a second point on the extravascular image. The second point corresponds to another part of the vessel,” the processing circuit may receive a second point on the extravascular image corresponding to a location on the vessel (or part thereof). For example, the processor 208 may execute instruction set 216 to receive point B(226) on the image (e.g., from the user via input and / or output (I / O) device 212, based on inference using an ML model, etc.). In some embodiments, a physician may use a touchscreen, mouse, joystick, etc., to specify the shortest path (224) to point A (e.g., the distal point) on the vessel on the extravascular image 218. Figure 4C shows an extravascular image 400 and a vessel 402, with points 404 (e.g., point A(222)) and 406 (e.g., point B(226)) on the vessel 402 marked on the extravascular image 400. In some embodiments, the processor 208 can execute a set of instructions 216 to cause the GUI 232 to include a display of an extravascular image 218 in which points A(222) and B(226) on the image are marked.
[0056] When the process proceeds to block 312, "The processing circuit determines the path of the blood vessel based on a second point and the shortest distance between each of the multiple pixels and the first point," the path between the point received in block 306 and the point received in block 310 may be determined based on the path identified in block 308. For example, the processor 208 can execute instruction set 216 to identify a path 224 from the shortest path to point A associated with point B(226) on the image, and generate an image 230 with a path overlay from the extravascular image 218 and the path 228 between A and B. Figure 4C shows an extravascular image 400, with blood vessels 402, points 404 and 406, and a path 408 between points marked on the extravascular image 400. In some embodiments, the processor 208 can execute a set of instructions 216 to cause the GUI 232 to include a display of an extravascular image 218 in which point A(222), point B(226), and a path 228 between A and B are marked on the image. In some embodiments, the processor 208 can execute a set of instructions 216 to cause the GUI 232 to include a display of both point B(226) and the path 228 between A and B simultaneously.
[0057] The logic flow 300 can optionally proceed to block 314, "Smooth the vascular path determined by the processing circuit," which can smooth the vascular path determined in block 312. For example, the processor 208 can execute instruction set 216 to smooth the path (e.g., remove jagged parts, reduce excess length, etc.). In some embodiments, the processor 208 can execute instruction set 216 to smooth the path 228 between A and B based on a path smoothing algorithm, and generate an image 230 with a path overlay from the extravascular image 218 and the smoothed path 228 between A and B. Figure 4D shows an extravascular image 400, with a vessel 402, point 404, point 406, and the smoothed path 410 marked on the extravascular image 400. In some examples, the processor 208 can execute instruction set 216 to smooth the path based on the Douglas-Peuker Algorithm, a path sampling algorithm (e.g., sampling every n coordinates (e.g., the 4th, 5th, 6th, 7th, etc.)), a spline simplification algorithm, or the like.
[0058] Figure 5 shows a logical flow 500 that can be performed by a computing device connected to an extravascular imaging device to generate an image velocity map, according to at least one embodiment of the present disclosure. In some embodiments, logical flow 300 can perform logical flow 500 as part of block 304. Logical flow 500 may be performed by a computing device 106 of the combined internal and external imaging system 100 in Figure 1, or by a computing device 202 of the vascular pathway identification system 200 in Figure 2. For clarity, note that logical flow 500 will be described with reference to the computing device 202 of the vascular pathway identification system 200 in Figure 2 and Figure 6. Figure 6 shows a series of extravascular images transformed to form an image velocity map, according to at least one embodiment of the present disclosure.
[0059] In some embodiments, the processor 208 can execute a set of instructions 216 to perform a logic flow 500 "in the background" while a user (e.g., a physician) analyzes a GUI 232 depicting an extravascular image 218. The logic flow 500 can begin in block 502, where the extravascular image can be speckled by a processing circuit. For example, the processor 208 can execute the set of instructions 216 to speckle the extravascular image 218 to form a speckled extravascular image. As described above, Figure 6 shows a series of extravascular images illustrating the generation of an image velocity map 220 from the extravascular image 218. For this purpose, Figure 6 shows a speckled image 602 formed from the extravascular image 218. Furthermore, as shown, the extravascular image 218 includes a depiction of a blood vessel 402. In some embodiments, the processor 208 can execute a set of instructions 216 to apply a Gaussian filter to the extravascular image 218 to form a speckle-free image 602. For example, the processor 208 can execute a set of instructions 216 to apply a 3x3 Gaussian kernel to the extravascular image 218 to form a speckle-free image 602.
[0060] In block 504, "Processing circuit identifies ambient light in the speckle-descaled extravascular image," ambient light in the speckle-descaled image can be identified. For example, processor 208 can execute instruction set 216 to identify ambient light in the speckle-descaled image 602 based on a blurring filter (e.g., a median filter with a diameter of 30-120 pixels). Figure 6 shows the ambient light of the extravascular image 604, which is the ambient light detected or identified from the speckle-descaled image 602. In block 506, "Processing circuit removes ambient light from the speckle-descaled extravascular image," the identified ambient light can be removed from the speckle-descaled image. For example, processor 208 can execute instruction set 216 to remove the ambient light of the extravascular image 604 from the speckle-descaled image 602 to form a light-adjusted extravascular image 606. Figure 6 shows a light-adjusted extravascular image 606 formed from the speckle-removed image 602 and the ambient light of the extravascular image 604.
[0061] In some other embodiments, the blur filter may be in the form of a geometric shape (e.g., a circle) applied across the entire image. In other embodiments, multiple filters may be provided, with different filters applied across (or to) different areas of the image. For example, a first filter may be applied to the border or edges of the image to remove shadows or dark borders, and then another filter may be applied to the entire image as outlined above.
[0062] Proceeding to block 508, "Normalizing the luminance and / or contrast of the ambient light-adjusted extravascular image by the processing circuit," the luminance and / or contrast of the ambient light-adjusted extravascular image may be normalized. For example, the processor 208 can execute instruction group 216 to normalize the luminance and / or ambient light of the light-adjusted extravascular image 606 to form a normalized extravascular image 608a. In some embodiments, the processor 208 can execute instruction group 216 to apply an image normalization algorithm to the light-adjusted extravascular image 606 to form a normalized extravascular image 608a. Figure 6 shows a normalized extravascular image 608a formed from the light-adjusted extravascular image 606.
[0063] When the process proceeds to block 510, "The processing circuit darkens the centerlines of blood vessels in the normalized extravascular image," the centerlines of blood vessels in the normalized extravascular image are darkened, and a centerline-darkened extravascular image may be formed. For example, the processor 208 can generate a centerline-darkened extravascular image 612 from the normalized extravascular image 608a by executing instruction set 216 to darken the portion of blood vessels represented in image 608a. Generally, the portion of blood vessel 402 is darkened in stages, and the centerline of blood vessel 402 is darkened at a higher rate than the edge of blood vessel 402. This will be explained in more detail by referring to region 610 for clarification. However, it should be understood that the entire image 608a is processed as described in order to darken the portion of blood vessel 402. The processor 208 executes instruction set 216 to apply a series of filters (e.g., a minimum filter of 3 pixels in diameter, a maximum filter of 3 pixels in diameter, a maximum filter of 5 pixels in diameter, and a minimum filter of 5 pixels in diameter) to the entire normalized extravascular image 608a, gradually darkening areas away from the edge of the vessel and darkening the vessel's centerline. Figure 6 shows region 610 on the normalized extravascular image 608a, the extravascular image 612 with the centerline darkened, and the series of filters applied to the normalized extravascular image 608a highlighted in region 610. This will be explained in more detail below with reference to Figure 7.
[0064] Proceeding to block 512, "A processing circuit generates an image velocity map from a centerline-darkened extravascular image based on a gradient transformation," the image velocity map can be generated from the centerline-darkened extravascular image based on a gradient transformation. For example, the processor 208 can execute instruction set 216 to apply a transformation (e.g., gradient transformation, linear transformation, sigmoid transformation, etc.) to the centerline-darkened extravascular image 612 to form the image velocity map 220. In some embodiments, the processor 208 can execute instruction set 216 to apply a sigmoid function (e.g., Sigmoid(X-115.2) / 22)) to the centerline-darkened extravascular image 612 to form the image velocity map 220. In other embodiments, the processor 208 can execute instruction set 216 to apply a linear function saturated as a minimum and maximum value to the centerline-darkened extravascular image 612 to form the image velocity map 220.
[0065] Figure 7 shows a logic flow 700 for applying a mask to a normalized extravascular image to darken the centerlines of one or more vessels within the normalized extravascular image. The logic flow 700 may be performed by a computing device connected to an extravascular imaging device, according to at least one embodiment of the present disclosure. In some embodiments, the logic flow 500 may perform the logic flow 700 as part of block 510. The logic flow 700 may be performed by the computing device 106 of the combined internal and external imaging system 100 in Figure 1, or by the computing device 202 of the vascular pathway identification system 200 in Figure 2. For clarity, note that the logic flow 700 will be described with reference to the computing device 202 of the vascular pathway identification system 200 in Figure 2 and Figure 6. As described above, Figure 6 shows a series of extravascular images transformed to form an image velocity map, according to at least one embodiment of the present disclosure.
[0066] The logic flow 700 can begin in block 702. In block 702, "A processing circuit applies multiple denoising filters to a normalized extravascular image including the display of blood vessels to form a speckle-free normalized extravascular image," multiple denoising filters are applied to a normalized extravascular image to form a speckle-free normalized extravascular image. For example, the processor 208 can execute instruction set 216 to apply filters (e.g., filters 614a, 614b, 614c, and / or filter 614d) to a normalized extravascular image 608a to form a speckle-free normalized extravascular image 608b. In some embodiments, filters 614a, 614b, 614c, and 614d may include morphological opening and closing filters. As a specific example, the processor 208 can execute instruction set 216 to sequentially apply a morphological opening filter to a dark pixel, followed by a morphological closing filter to the dark pixel. In some embodiments, the processor 208 can execute instruction set 216 to apply a morphological opening filter to a dark pixel using a 3x3 circular structure element, first applying a minimum filter (e.g., filter 614a), and then a maximum filter (e.g., filter 614b). Furthermore, in some embodiments, the processor 208 can execute instruction set 216 to apply a morphological closing filter to a dark pixel using a 5x5 circular structure element, first applying a maximum filter (e.g., filter 614c), and then a minimum filter (e.g., filter 614d).
[0067] Proceeding to block 704, "The processing circuit identifies multiple dark vessel candidates from the speckle-deselected and normalized extravascular image," multiple dark vessel candidates can be identified from the speckle-deselected and normalized extravascular image. For example, the processor 208 can identify dark vessel candidates 616a, 616b, 616c, 616d, 616e, and / or 616f from the speckle-deselected and normalized extravascular image 608b by executing instruction set 216 to darken a region of at least d pixels within the vessel by an amount s. The processor 208 can identify dark vessel candidate 616a by executing instruction set 216 to darken a region of at least d pixels within the vessel by multiplying the pixel value by an amount s, where d=1 and s=0.31. Processor 208 can identify dark blood vessel candidate 616b by executing instruction set 216 to darken a region of at least d pixels within the blood vessel by multiplying the pixel value by a quantity s, where d=2 and s=0.40. Processor 208 can identify dark blood vessel candidate 616c by executing instruction set 216 to darken a region of at least d pixels within the blood vessel by multiplying the pixel value by a quantity s, where d=3 and s=0.48. Processor 208 can identify dark blood vessel candidate 616d by executing instruction set 216 to darken a region of at least d pixels within the blood vessel by multiplying the pixel value by a quantity s, where d=4 and s=0.54. Processor 208 can identify dark blood vessel candidate 616e by executing instruction set 216 to darken a region of at least d pixels within the blood vessel by multiplying the pixel value by a quantity s, where d=5 and s=0.60. The processor 208 can identify dark blood vessel candidates 616a by executing instruction set 216 to darken a region of at least d pixels within the blood vessel by multiplying the pixel value by a quantity s, where d=6 and s=0.65.
[0068] In some embodiments, the processor 208 can execute instruction set 216 to identify dark vessel candidates (e.g., dark vessel candidates 616a, 616b, etc.) based on the following:
[0069] A thin vascular image (not shown) is generated by performing morphological expansion using a max filter on a speckle-deselected and normalized extravascular image 608b using circular structural elements of w*h (where w=2d+1 and h=2d+1).
[0070] • By applying a sigmoid-like function f(x) to each pixel of the thin vessel image, a soft vascular probability image (not shown) is calculated from the thin vessel image (where f(x) = {0, if x <= 103.68, 1, if x >= 126.72 (x - 103.68) / 23.04, if 103.68 <x<126.72})。
[0071] By multiplying each pixel value by s, a darker image of thinner blood vessels (not shown) is calculated from the image of thinner blood vessels. • Using the soft vascular stochastic image as the alpha channel, darker vascular candidates (e.g., dark vascular candidates 616a, 616b, etc.) are calculated by alpha blending the normalized extravascular image 608a with the darker, thinner vascular image. Here, alpha=0 means that the thin vascular image occupies 100% of the pixel value, and alpha=1 means that the normalized extravascular image 608a occupies 100% of the pixel value.
[0072] When the process proceeds to block 706, "The processing circuit selects one of several dark vessel candidates," one of several dark vessel candidates (e.g., the speckle-deselected and normalized extravascular image 608b, dark vessel candidates 616a, 616b, etc.) may be selected. For example, the processor 208 can execute instruction set 216 to select one vessel candidate with the smallest (e.g., the darkest) pixel among several dark vessel candidates (e.g., the speckle-deselected and normalized extravascular image 608b, dark vessel candidates 616a, 616b, etc.).
[0073] When the process proceeds to block 708, "The processing circuit generates a centerline-darkened extravascular image from the normalized extravascular image and one selected from several dark vessel candidates," the centerline-darkened extravascular image may be generated from the normalized extravascular image and one selected from several dark vessel candidates. It should be understood that the selection of one of several dark vessel candidates may be performed for each masked area or region of the image. Therefore, the logic flow 700 may be executed iteratively across the entire normalized extravascular image 608a (for example, as described for region 610).
[0074] Returning to Figure 2, as described above, memory 210 stores a plurality of shortest paths 224 to point A, including instructions for the shortest paths between point A(222) on the image and a plurality of other pixels (or points) in the extravascular image 218. In some embodiments, the plurality of shortest paths 224 to point A may be a list that each refers to a plurality of determined shortest paths (e.g., between point A and pixel 1, between point A and pixel 2, between point A and pixel 3, etc.). Thus, if the user moves, adds, or deletes points during operation (e.g., the user moves point B), the processor 208 can execute a set of instructions 216 to update the paths 228 between A and B (e.g., in real time as points are moved, added, or deleted). Figure 8 shows a logical flow 800 that may be performed by a computing device connected to the extravascular imaging device to display and / or update paths, as assumed herein. The logical flow 800 may be performed by the computing device 106 of the combined internal and external imaging system 100 in Figure 1, or by the computing device 202 of the vascular pathway identification system 200 in Figure 2. For clarity, note that the logical flow 800 will be described with reference to the computing device 202 of the vascular pathway identification system 200 in Figure 2 and Figure 9. Figure 9 shows a series of extravascular images showing points and pathways between points, which may be similar to the points and pathways displayed on an extravascular image (e.g., extravascular image 218) and shown on a user GUI (e.g., GUI 232).
[0075] Logical flow 800 can be initiated by logical flow 300. That is, logical flow 800 can include logical flow 300 as its first subprocess. As described above, logical flow 300 may be implemented to receive points on an extravascular image and determine the paths between those points. Figure 9 shows a series of images 902a to 902h highlighting points and paths between them. Note that these images may be extravascular images. However, for clarity, depictions or representations of blood vessels and vascular structures have been omitted so that this disclosure can focus on points and paths between them. As described above, logical flow 300 includes block 306 from which points on an image can be received. Figure 9 shows image 902a showing a first point 904 that has been received and shown on the image. Logical flow 300 further includes block 308 from which all paths between one point and other points on the image are identified (or derived using a shortest path algorithm, etc.). For example, Figure 9 shows image 902b in which a first point 904 and several shortest paths to the first point 906 between the first point 904 and other points in the image are identified. The logic flow 300 further includes blocks 310 and 312 in which a second point on the image is received and the shortest path between the first point and the second point is identified. Figure 9 shows image 902c in which a second point 908 is received and shown on the image, and the shortest path 910 between the first point 904 and the second point 908 shown on the image. As described above, the shortest path 910 can be obtained from several shortest paths 224 to point A that were previously derived. Thus, the shortest path 910 can be drawn and shown on the image in real time.
[0076] Logical flow 800 can proceed from logical flow 300 to block 802. In block 802, “Processing circuit identifies the shortest distance between each of multiple pixels in the extravascular image and a second point based on an image velocity map,” the shortest distance between the second point and multiple pixels in the extravascular image can be determined. For example, in some embodiments, the processor 208 can execute instruction set 216 to identify the shortest path between point B(226) on the image and multiple other pixels in the extravascular image 218. In some embodiments, the processor 208 executes instruction set 216 to identify the path between point B(226) on the image and each pixel in the extravascular image 218 associated with a blood vessel (e.g., blood vessel 402) based on an image velocity map 220. Figure 9 shows image 902d showing both the first point 906 and the second point 912, as well as the shortest paths to the first point 904 and the shortest paths to the second point 908.
[0077] Once the shortest paths to the first point 906 and the second point 912 are derived, it should be understood that the shortest path 910 can be updated in real time based on the movement of either the first point 904 or the second point 908. Furthermore, the shortest path 910 can be updated in real time by adding a point between the first point 904 or the second point 908.
[0078] The logic flow 800 can proceed to block 804 “Processing circuit receives instruction for a third point on an extravascular image, the third point corresponding to a part of a blood vessel,” where the processing circuit can receive a point on an extravascular image corresponding to a location (or part of a blood vessel). For example, the processor 208 can execute instruction set 216 to receive a third point 914 (e.g., from the user via input and / or output (I / O) device 212, based on inference using an ML model, etc.) and display multiple shortest paths from the third point 914 to the first point 904 and the second point 908. Figure 9 shows image 902e showing the third point 914, as well as the updated shortest path 916a as the shortest path from the third point 914 to the first point 904, and the updated shortest path 916b as the shortest path between the third point 914 and the second point 908. The connecting path of the updated shortest path 916a and the updated shortest path 916b forms the shortest path from the first point 904 to the second point 908 via the third point 914. In this way, the user (e.g., a physician) can add points to the extravascular image (e.g., extravascular image 218) and update the path in real time, taking the added points into consideration.
[0079] Proceeding to block 806, "The processing circuit identifies the shortest distance between each of the multiple pixels in the extravascular image and the third point based on the image velocity map," the shortest distance between the third point and the multiple pixels in the extravascular image can be determined. For example, in some embodiments, the processor 208 can execute instruction set 216 to identify the shortest path between the third point 914 and the multiple other pixels in the image. Figure 9 shows image 902f, which illustrates multiple shortest paths to the third point 918.
[0080] When the process proceeds to block 808, "Receive instructions to move the position of a second point on the extravascular image and update the shortest path by processing circuitry," instructions to move the position of a second point on the image may be received. For example, the processor 208 can execute instruction set 216 to receive instructions (e.g., instructions from the user via I / O device 212, instructions based on inference using an ML model, etc.) to move the position of one of the points on the image (e.g., a second point 908) and update the shortest path in real time. For example, Figure 9 shows image 902g showing the second point 908 moved to the second point 920 and the updated shortest path 916b updated in real time to the updated shortest path 922. The processor 208 can execute instruction set 216 to determine the shortest path to the third point 918 and the updated shortest path 922 from the moved second point 920.
[0081] Proceeding to block 810, "The processing circuit identifies the shortest distance between each of the multiple pixels in the extravascular image and the second point after movement based on the image velocity map," the shortest distance between the second point after movement and the multiple pixels in the extravascular image can be determined. For example, in some embodiments, the processor 208 can execute instruction set 216 to identify the shortest path between the second point after movement 920 and multiple other pixels in the image. Figure 9 shows image 902h, which illustrates multiple shortest paths to the second point after movement 924.
[0082] Therefore, the logical flow 800 can be implemented to allow points to be added, removed, moved, etc., and the paths between points to be updated in real time and displayed on a user-facing GUI (e.g., GUI 232).
[0083] Figure 10 shows a logical flow 1000 that may be performed by a computing device connected to an extravascular imaging device to smooth the pathways around intermediate points as assumed herein. The logical flow 1000 may be performed by the computing device 106 of the combined internal and external imaging system 100 in Figure 1, or by the computing device 202 of the vascular pathway identification system 200 in Figure 2. For clarity, note that the logical flow 1000 will be described with reference to the computing device 202 of the vascular pathway identification system 200 in Figure 2 and Figure 11. Figure 11 shows a series of extravascular images showing points and pathways between points, which may be similar to the points and pathways displayed on an extravascular image (e.g., extravascular image 218) and shown on a user GUI (e.g., GUI 232).
[0084] The logic flow 1000 can begin with block 1002, “Processing circuit adds two intermediate points around the midpoint on the path,” so that two intermediate points are added around the midpoint on the path. For example, the processor 208 can execute instruction set 216 to add intermediate points on both sides of the midpoint on the path. In some embodiments, the processor 208 executes instruction set 216 to add multiple intermediate points along the routed path at a specified number of pixels (e.g., 5 to 20 pixels, 12 pixels, etc.) away from the midpoint. Figure 11 shows image 1102a showing a proximal point 1104 and a distal point 1106, with the path 1108 routed between the proximal point 1104 and the distal point 1106 through the midpoint 1110. Furthermore, Figure 11 shows image 1102b showing intermediate points 1112a and 1112b added along the path 1108 on both sides of the midpoint 1110.
[0085] By proceeding to block 1004, "The processing circuit identifies multiple paths from multiple intermediate points to their respective endpoints," multiple paths from multiple intermediate points to their respective endpoints can be identified. For example, the processor 208 can execute instruction set 216 to identify multiple paths from each intermediate point to their respective endpoints based on multiple shortest paths previously determined for each endpoint (e.g., multiple shortest paths 224 to point A). Figure 11 shows image 1102b, which illustrates intermediate points 1112a and 1112b added around path 1108, the shortest path 1114a routed between intermediate point 1112a and its corresponding endpoint, and the shortest path 1114b routed between intermediate point 1112b and its corresponding endpoint.
[0086] Proceeding to block 1006, "A processing circuit selects a single line segment or curve segment passing through the midpoint based on multiple shortest paths from multiple midpoints and a group of line segments or curve segments," a single line segment or curve segment can be identified based on multiple shortest paths from multiple midpoints and a group of line segments or curve segments. For example, the processor 208 can execute instruction set 216 to identify a line segment or curve segment from a group of line segments or curve segments based on multiple paths routed from multiple midpoints. In some embodiments, the processor 208 can execute instruction set 216 to identify a line segment or curve segment based on minimizing the overall path cost. For example, Figure 11 shows image 1102c, which illustrates a group of line segments or curve segments 1116 passing through the midpoint 1108. The processor 208 can execute instruction set 216 to evaluate such multiple line segments or curve segments and select the line segment or curve segment with the minimum total path cost (e.g., selected path = (C P +C M +C D The minimum value of ), where C M(where is a line segment or curve segment passing through the midpoint). In some embodiments, the processor 208 can execute a set of instructions 216 to evaluate a group of line segments or curve segments 1116 that include multiple straight lines and / or multiple curved lines or curve segments that pass through the vicinity of the midpoint 1110 (to allow for improperly placed points) and / or multiple curved lines or curve segments (to follow a winding blood vessel).
[0087] When the process proceeds to block 1008, "The processing circuit forms the entire path from multiple intermediate paths and selected line segments or curve segments," a complete path passing through the midpoint is formed from the paths routed from the multiple intermediate points and selected line segments or curve segments. For example, the processor 208 can execute instruction set 216 to form a complete path from the multiple paths routed from multiple intermediate points in block 1004 and the selected line segment or curve or curve segment in block 1006. Figure 11 shows image 1102d, which illustrates the smoothed path 1118 formed from intermediate point 1112a, intermediate point 1112b, and one line segment or curve segment selected from the multiple line segments or curve segments 1116.
[0088] Figure 12 shows a computer-readable storage medium 1200. The computer-readable storage medium 1200 may comprise any non-temporary computer-readable or machine-readable storage medium, such as an optical storage medium, a magnetic storage medium, or a semiconductor storage medium. In various embodiments, the computer-readable storage medium 1200 may constitute a manufactured product. In some embodiments, the computer-readable storage medium 1200 may store a set of computer-executable instructions 1202 that a circuit (e.g., computing device 106, processor 208, etc.) can execute. For example, the set of computer-executable instructions 1202 may include instructions for performing the operations described with respect to logic flow 300, logic flow 500, logic flow 700, logic flow 800, and / or logic flow 1000. Examples of computer-readable storage media 1200 or machine-readable storage media may include any tangible medium capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, etc. Examples of computer executable instruction sets 1202 may include any appropriate type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, and visual code.
[0089] Figure 13 shows a schematic diagram of machine 1300 in the form of a computer system in which a set of instructions can be executed to cause the machine to perform any one or more of the methods described herein. More specifically, Figure 13 shows a schematic diagram of machine 1300 in an exemplary form of a computer system in which a set of instructions 1308 (e.g., software, programs, applications, applets, apps, or other executable code) can be executed to cause machine 1300 to perform any one or more of the methods described herein. For example, the set of instructions 1308 can cause machine 1300 to perform the set of instructions 216 in Figure 2, logic flow 300 in Figure 3, logic flow 500 and logic flow 700 in Figure 5, logic flow 800 in Figure 8, and / or logic flow 1000 in Figure 10, etc. More schematicly, the set of instructions 1308 can cause machine 1300 to route the pathways of blood vessels on an extravascular image based on at least two points indicated on the image.
[0090] Instruction set 1308 translates a general, unprogrammed machine 1300 into a specific machine 1300 programmed to perform the functions described and illustrated in a concrete manner. In alternative examples, machine 1300 may operate as a standalone device or be combined with other machines (e.g., networked). In a networked configuration, machine 1300 may operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 1300 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a PDA, an entertainment media system, a mobile phone, a smartphone, a mobile device, a wearable device (e.g., a smartwatch), a smart home device (e.g., a smart appliance), another smart device, a web appliance, a network router, a network switch, a network bridge, or any other machine capable of sequentially or otherwise executing instruction set 1308 that specifies the actions performed by machine 1300. Furthermore, although only a single machine 1300 is illustrated, the term “machine” shall also be interpreted to include a set of multiple machines 1300 that individually or collectively execute the instruction set 1308 to perform any one or more of the methods described herein.
[0091] Machine 1300 may include a processor 1302, memory 1304, and I / O components 1342, which may be configured to communicate with each other via a bus 1344, etc. In one embodiment, the processor 1302 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a composite instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, processors 1306 and 1310 capable of executing instruction set 1308. The term “processor” is intended to include multicore processors which may have two or more independent processors (sometimes called “cores”) capable of executing instructions simultaneously. Figure 13 shows multiple processors 1302, but machine 1300 may include a single processor having a single core, a single processor having multiple cores (e.g., a multicore processor), multiple processors having a single core, multiple processors having multiple cores, or any combination thereof.
[0092] Memory 1304 may include main memory 1312, static memory 1313, and storage unit 1316, both of which are accessible to processor 1302 via bus 1344, etc. Main memory 1304, static memory 1314, and storage unit 1316 store instruction sets 1308 that embody any one or more of the methods or functions described herein. The instruction sets 1308 may also reside, all or in part, in main memory 1312, static memory 1314, machine-readable media 1318 in storage unit 1316, in at least one of processor 1302 (e.g., in the processor's cache memory), or any suitable combination thereof, while being executed by machine 1300.
[0093] The I / O component 1342 may include a wide variety of components for receiving inputs, providing outputs, generating outputs, transmitting information, exchanging information, capturing measurements, and so on. The specific I / O component 1342 included in a particular machine depends on the type of machine. For example, portable devices such as mobile phones are likely to include touch input devices or other such input mechanisms, while headless server machines are unlikely to include such touch input devices. It will be understood that the I / O component 1342 may include many other components not shown in Figure 13. The I / O component 1342 is grouped according to function simply to simplify the following description, and this grouping is by no means limiting. In various exemplary embodiments, the I / O component 1342 may include an output component 1328 and an input component 1330. The output component 1328 may include visual components (e.g., displays such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), auditory components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), and other signal generators. The input component 1330 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photo-optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing devices), tactile input components (e.g., physical buttons, touchscreens that provide the position and / or force of touch or touch gestures, or other tactile input components), and audio input components (e.g., microphones).
[0094] In further exemplary embodiments, the I / O component 1342 may include, among a wide variety of other components, a biometric component 1332, a motion component 1334, an environmental component 1336, or a position component 1338. For example, the biometric component 1332 may include components that detect facial expressions (e.g., hand expressions, facial expressions, voice expressions, gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or electroencephalography), and identify people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalography-based recognition). The motion component 1334 may include acceleration sensor components (e.g., accelerometers), gravity sensor components, rotation sensor components (e.g., gyroscopes), and the like. The environmental component 1336 may include, for example, a lighting sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of harmful gases for safety or measures airborne pollutants), or other components that can provide displays, measurements, or signals corresponding to the surrounding physical environment. The position component 1338 may include a position sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure from which altitude can be derived), a compass sensor component (e.g., a magnetometer), and the like.
[0095] Communication can be implemented using a wide variety of technologies. The I / O component 1342 may include a communication component 1340 that can operate to connect machine 1300 to network 1320 or device 1322 via couplings 1324 and 1326, respectively. For example, the communication component 1340 may include a network interface component or another suitable device for interface connection with network 1320. In further embodiments, the communication component 1340 may include a wired communication component, a wireless communication component, a cellular communication component, a near-field communication (NFC) component, a Bluetooth® component (e.g., Bluetooth® Low Energy), a Wi-Fi® component, and other communication components that provide communication via other modalities. Device 1322 may be another machine or a wide variety of peripheral devices (e.g., peripheral devices connected via USB).
[0096] Furthermore, the communication component 1340 may include components that can detect identifiers or are operable to detect identifiers. For example, the communication component 1340 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying tagged audio signals). In addition, various types of information can be derived through the communication component 1340, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, and location by detection of NFC beacon signals that may indicate a specific location.
[0097] Various memories (i.e., memory 1304, main memory 1312, static memory 1314, and / or the memory of processor 1302) and / or storage unit 1316 may store one or more sets of instructions and data structures (e.g., software) that embody or are utilized by any one or more of the methods or functions described herein. When these instructions (e.g., instruction set 1308) are executed by processor 1302, they trigger a variety of operations for carrying out the exemplary embodiments disclosed.
[0098] As used herein, the terms “mechanical storage medium,” “device storage medium,” and “computer storage medium” mean the same thing and may be used interchangeably in this disclosure. These terms refer to one or more storage devices and / or media (e.g., centralized or distributed databases, and / or associated caches and servers) that store executable instructions and / or data. Accordingly, these terms shall be construed to include, but are not limited to, solid-state memory, including internal or external memory of a processor, as well as optical and magnetic media. Specific examples of mechanical storage mediums, computer storage mediums, and / or device storage mediums include, for example, non-volatile memory, including semiconductor memory devices such as EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), FPGAs, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms “mechanical storage medium,” “computer storage medium,” and “device storage medium” specifically exclude carrier waves, modulated data signals, and other such mediums, at least some of which are covered under the term “signaling medium,” as described below.
[0099] In various embodiments, one or more parts of network 1320 may be an ad-hoc network, intranet, extranet, VPN, LAN, WLAN, WAN, WWAN, MAN, Internet, part of the Internet, part of the PSTN, POTS (plain old telephone service) network, cellular telephone network, wireless network, Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, network 1320 or part of network 1320 may include a wireless or cellular network, and coupling 1324 may be a CDMA (Code Division Multiple Access) connection, a GSM (Global System for Mobile) connection, or another type of cellular or wireless connection. In this example, coupling 1324 can implement any of the various types of data transfer technologies, including 1xRTT (Single Carrier Radio Transmission Technology), EVDO (Evolution-Data Optimized) technology, GPRS (General Packet Radio Service), EDGE (Enhanced Data rates for GSM Evolution) technology, 3GPP (third Generation Partnership Project) including 3G, 4G (fourth generation wireless) networks, UMTS (Universal Mobile Telecommunications System), HSPA (High Speed Packet Access), WiMAX (Worldwide Interoperability for Microwave Access), LTE (Long Term Evolution) standards, others defined by various standardization bodies, other long-range protocols, or other data transfer technologies.
[0100] The instruction set 1308 may be transmitted or received on network 1320 using a transmission medium via a network interface device (e.g., a network interface component included in communication component 1340) and utilizing one of several well-known transfer protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, the instruction set 1308 may be transmitted or received using a transmission medium via a coupling 1326 to device 1322 (e.g., a peer-to-peer coupling). The terms “transmission medium” and “signaling medium” mean the same thing and may be used interchangeably in this disclosure. The terms “transmission medium” and “signaling medium” shall be interpreted to include any intangible medium that can store, encode, or carry the instruction set 1308 for execution by machine 1300 and that includes digital or analog communication signals or other intangible medium to enable communication of such software. Accordingly, the terms “transmission medium” and “signaling medium” shall be interpreted to include any form such as modulated data signals, carrier waves, etc. The term “modulated data signal” means a signal in which one or more of its properties are set or modified in such a way as to encode information in the signal.
[0101] Terms used herein should follow their common meanings in the relevant technical field or the meanings indicated by their use in the context; however, if an explicit definition is provided, that meaning shall prevail.
[0102] In this specification, references to “one embodiment” or “a certain embodiment” may refer to the same embodiment, but not necessarily to the same embodiment. Unless the context clearly indicates otherwise, throughout this specification and the claims, words such as “comprise” and “comprising” should be interpreted in a comprehensive sense, i.e., “including, but not limited to,” as opposed to an exclusive or exhaustive sense. Words used in singular or plural form also include plural or singular, respectively, unless expressly limited to one or more. Furthermore, when used in this application, “in this specification,” “above,” “below,” and words with similar meanings refer to the entire application, not to any part thereof. Where the claims use the word “or” in relation to a list of two or more items, the word encompasses all interpretations of the word, including any of the items in the list, all of the items in the list, and any combination of the items in the list, unless expressly limited to one or the other. Any term not expressly defined in this specification has the conventional meaning generally understood by those skilled in the art.
[0103] Using real anatomical models allows for more accurate surgical planning than statistical modeling alone can achieve.
Claims
1. A method performed by a computer, The processing circuit includes the steps of receiving an extravascular image, including a display of blood vessels, from an extravascular imaging device, The processing circuit includes the steps of generating an image velocity map based on the extravascular image, The processing circuit includes the step of receiving an indication of a first point on the extravascular image, wherein the first point corresponds to a part of a blood vessel, and the step of receiving an indication of a first point. The processing circuit includes the step of identifying the shortest distance from each of a plurality of pixels on the image to the first point based on the image velocity map, The processing circuit receives an indication of a second point on the extravascular image, wherein the second point corresponds to another part of the blood vessel, and the processing circuit receives an indication of a second point. A method comprising the step of determining the path of a blood vessel based on the second point and the shortest distance from each of the plurality of pixels to the first point.
2. The computer-based method according to claim 1, comprising the step of smoothing the aforementioned path.
3. The aforementioned path includes a midpoint, and the step of smoothing the aforementioned path is: Adding intermediate points along the path on both sides of the aforementioned midpoint, Identifying the shortest path from each of the aforementioned intermediate points to each of the first and second points, Selecting one line segment or curve segment from a plurality of line segments or curve segments connecting the intermediate points, based in part on the shortest path from each of the intermediate points to the first point and the second point, A computer-assisted method according to claim 2, comprising forming a path from the shortest path of the selected line segment or curve segment and the shortest paths from each of the intermediate points to the first point and the second point, respectively.
4. The step of the processing circuit generating the image velocity map is: The extravascular image is despeckled to generate a despeckled extravascular image, The brightness and / or contrast of the speckle-removed extravascular image are normalized to generate a normalized extravascular image. A computer-based method according to claim 1, comprising darkening the midline of a vessel based in part on the speckle-deselected extravascular image in order to generate the image velocity map.
5. The step of the processing circuit generating the image velocity map is: To identify ambient light within the extravascular image after speckle removal, The computer-based method according to claim 4, comprising removing ambient light from the speckle-degraded extravascular image to form a light-adjusted extravascular image, wherein the normalized extravascular image is generated based on the light-adjusted extravascular image.
6. The computer-based method according to claim 5, comprising the step of identifying ambient light in the speckle-deselected image based on a blur filter having a median diameter between 30 pixels and 120 pixels.
7. The computer-based method according to claim 4, comprising the step of applying a Gaussian kernel to the extravascular image to remove speckle from the extravascular image.
8. The method implemented by the computer according to claim 7, wherein the Gaussian kernel is a Gaussian kernel with a diameter of 3 pixels × 3 pixels.
9. The computer-based method according to claim 4, comprising the step of iteratively applying a mask to a portion of the normalized image to gradually darken pixels corresponding to a portion of blood vessels represented on the normalized image based on the distance of pixels from the boundaries of blood vessels.
10. The computer-based method according to claim 4, comprising the step of applying a gradient transformation to a centerline-darkened image in order to generate a vascular velocity map.
11. The method performed by a computer according to claim 10, wherein the gradient transformation is a sigmoid transformation or a linear transformation.
12. The processing circuit includes the step of identifying the shortest distance from each of the plurality of pixels on the image to the second point based on the image velocity map, The steps include receiving an instruction to move the position of the first point, A computer-based method according to claim 1, comprising the step of identifying an updated path of a blood vessel based on the first point after movement and the shortest distance from each of the plurality of pixels to the second point.
13. The processing circuit includes the step of identifying the shortest distance from each of the plurality of pixels on the image to the second point based on the image velocity map, The steps include receiving an indication of the midpoint on the extravascular image, A computer-based method according to claim 1, comprising the step of identifying an updated pathway of a blood vessel based on the shortest distance from each of the midpoint and the plurality of pixels to the first point and the shortest distance from each of the midpoint and the plurality of pixels to the second point.
14. A computing device connected to an angiography machine, wherein the computing device comprises a processor and a memory connected to the processor, and the memory comprises a set of instructions for causing the computing device to perform the method according to any one of claims 1 to 13 when executed by the processor.
15. A computer-readable medium including a set of instructions, wherein the set of instructions causes the medical imaging device to execute the method according to any one of claims 1 to 13 when executed by the processor of the medical imaging device.