1. Field of the Invention
This invention relates generally to scanning objects and more particularly to generating a three-dimensional scan of an object using a handheld scanner.
2. Description of Related Art
Computer-aided design (CAD) systems may use a computer to modify a three-dimensional (3D) representation of an object. The CAD system may provide functionality for modifications that size, stretch, rotate, and otherwise make changes to the 3D representation. The modified representation may be used to produce instructions for controlling a computer-aided manufacturing (SAM) machine to fabricate a three-dimensional reproduction of the modified object.
For example, prostheses and orthoses are commonly produced from three-dimensional representations of a body part of a human or an animal. In some cases, generation of the prosthesis or orthosis is based on a 3D scan of the body part. A 3D scanner may be used to generate the 3D representation of the body part for use in the CAD system. One such scanner is the Spectra™ 3D handheld scanner produced by Vorum Research Corp. of Vancouver, BC, Canada. The Spectra 3D scanner projects a grid of light onto the body part of a patient or other object and captures images of the object while the operator moves the handheld scanner relative to the object. The images are transmitted to a scanner software program running on a computer, which processes the images to generate a set of 3D points representing surfaces of the object. For example, the object may be represented by a polygon mesh or triangular mesh having vertices that defined by 3D coordinates that lie on the surface of the object.
Handheld 3D scanners are convenient to use since additional equipment for mounting and moving the scanner is not required. However, operation by an inexperienced operator may result in images that are unsuitable for producing an accurate scan of the object. There remains a need for improved 3D scanning methods.
In accordance with one disclosed aspect there is provided a method for generating a three-dimensional scan of an object using a handheld scanner. The method involves obtaining images of the object from a successive plurality of handheld scanner positions with respect to the object, and processing the images to generate a respective 3D frame for each of the plurality of handheld scanner positions. Each 3D frame includes data representing locations of a plurality of 3D points on a surface of the object. The method further involves comparing each successive 3D frame with at least one preceding 3D frame, determining whether a result of the comparison meets a correspondence criterion associated with generation of a 3D representation of the surface of the object, and initiating a recovery process when the correspondence criterion is not met.
Determining whether the result of the comparison meets the correspondence criterion may involve determining whether 3D points associated with the 3D frame can be transformed to align with 3D points in the preceding 3D frame within a reference tolerance.
Initiating the recovery process may involve comparing a subsequent 3D frame with a 3D frame preceding the 3D frame that caused initiation of the recovery process, and resuming the scan of the object if a result of the comparison meets the correspondence criterion.
Resuming the scan of the object may involve resuming the scan without operator intervention.
The method may involve comparing the subsequent 3D frame with the 3D frame that caused initiation of the recovery process and may further involve one of retaining the frame if a result of the comparison meets the correspondence criterion, and discarding the frame if the result of the comparison does not meet the correspondence criterion.
The method may involve designating at least one preceding 3D frame as a reference frame and initiating the recovery process may involve comparing a subsequent 3D frame with a 3D frame preceding the 3D frame that caused initiation of the recovery process, and if a result of the comparison does not meet the correspondence criterion, comparing at least one of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame and resuming the scan of the object if a result of the comparison with the reference frame meets the correspondence criterion.
Comparing at least one of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame may involve comparing each of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame.
Designating may involve designating at least one preceding 3D frame that meets a frame quality criterion as a reference frame the frame quality criterion is based on at least one of the presence of topological content of the frame, the presence of discernable features within the frame, and a data point density within the frame.
Designating may involve designating at least one preceding 3D frame as a reference frame in response to receiving operator input.
Designating may involve designating a plurality of preceding 3D frames as reference frames and comparing may involve comparing at least one of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with each of the plurality of reference frames.
Designating a plurality of preceding 3D frames as reference frames may involve designating a sufficient number of 3D frames as reference frames such that when the comparison result does not meet a correspondence criterion, at least one reference frame will be in view of the handheld scanner to permit the scan of the object to resume.
The method may further involve, if the result of the comparison between the at least one subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame does not meet the reference criterion, providing feedback to the operator of the handheld scanner that a operator intervention is required.
Providing feedback to the operator may involve directing the operator to re-scan a portion of the object.
The method may involve obtaining further images of the object and processing the images to generate a further 3D frame for the re-scanned portion of the object and may further involve comparing the further 3D frame with a 3D frame preceding the 3D frame that caused initiation of the recovery process and if a result of the comparison meets the correspondence criterion, continuing the scan, and comparing the further 3D frame with the reference frame and if a result of the comparison meets the correspondence criterion, continuing the scan.
Providing feedback to the operator of the handheld scanner that an operator intervention is required may involve at least one of generating a visual warning, causing the handheld scanner to vibrate, displaying a warning 3D frame on a 3D frame display in view of the operator, and generating an audible warning.
The method may involve designating at least one preceding 3D frame as a reference frame and initiating the recovery process may involve generating operator feedback directing the operator to position the handheld scanner to obtain a further image from a location proximate the reference frame, processing the image to generate a 3D frame and comparing the 3D frame with the reference frame, determining whether a result of the comparison meets a correspondence criterion, and resuming the scan of the object when the correspondence criterion is met.
The method may involve designating at least one preceding 3D frame as a reference frame, and determining whether there has been an interruption in obtaining images of the object, and in response comparing a subsequent 3D frame with the reference frame and resuming the scan of the object if a result of the comparison with the reference frame meets the correspondence criterion.
Determining that there has been an interruption in obtaining images of the object may involve determining whether an elapsed time between successive images meets an interruption criterion.
The handheld scanner may include a single camera and obtaining images of the object may involve, for each of the plurality of handheld scanner positions projecting a pattern of light onto the surface of the object, causing the camera to capture an image of the surface while being illuminated by the pattern of light, causing the camera to capture a further image of the surface when not illuminated by the pattern of light, and comparing each successive 3D frame with at least one preceding 3D frame may involve using information provided by the further image to provide an estimate of the position of the handheld scanner for use in the comparison.
In accordance with another disclosed aspect there is provided a system for generating a three-dimensional scan of an object. The system includes a handheld scanner operable to generate images of the object from a successive plurality of handheld scanner positions with respect to the object. The system also includes a processor circuit operably configured to process the images to generate a respective 3D frame for each of the plurality of handheld scanner positions. Each 3D frame includes data representing locations of a plurality of 3D points on a surface of the object. The processor circuit is also operably configured to compare each successive 3D frame with at least one preceding 3D frame, determine whether a result of the comparison meets a correspondence criterion associated with generation of a 3D representation of the surface of the object, and initiate a recovery process when the correspondence criterion is not met.
The processor circuit may be operably configured to determine whether the result of the comparison meets the correspondence criterion by determining whether 3D points associated with the 3D frame can be transformed to align with 3D points in the preceding 3D frame within a reference tolerance.
The processor circuit may be operably configured to initiate the recovery process by comparing a subsequent 3D frame with a 3D frame preceding the 3D frame that caused initiation of the recovery process, and causing the scan of the object to resume if a result of the comparison meets the correspondence criterion.
The processor circuit may be operably configured to cause the scan of the object to resume without operator intervention.
The processor circuit may be operably configured to compare the subsequent 3D frame with the 3D frame that caused initiation of the recovery process and to cause one of retaining the frame if a result of the comparison meets the correspondence criterion, and discarding the frame if the result of the comparison does not meet the correspondence criterion.
The processor circuit may be operably configured to designate at least one preceding 3D frame as a reference frame and to initiate the recovery process by comparing a subsequent 3D frame with a 3D frame preceding the 3D frame that caused initiation of the recovery process, and if a result of the comparison does not meet the correspondence criterion, comparing at least one of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame and causing the scan of the object to resume if a result of the comparison with the reference frame meets the correspondence criterion.
The processor circuit may be operably configured to compare each of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame.
The processor circuit may be operably configured to designate at least one preceding 3D frame that meets a frame quality criterion as a reference frame, the frame quality criterion being based on at least one of the presence of topological content of the frame, the presence of discernable features within the frame, and a data point density within the frame.
The processor circuit may be operably configured to designate at least one preceding 3D frame as a reference frame in response to receiving operator input.
The processor circuit may be operably configured to designate the at least one preceding 3D frame by designating a plurality of preceding 3D frames as reference frames and to compare at least one of the subsequent 3D frame and the 3D frame that caused initiation of the recovery process with each of the plurality of reference frames.
The processor circuit may be operably configured to designate the plurality of preceding 3D frames as reference frames by designating a sufficient number of 3D frames as reference frames such that when the comparison result does not meet a correspondence criterion, at least one reference frame will be in view of the handheld scanner to permit the scan of the object to resume.
If the result of the comparison between the at least one subsequent 3D frame and the 3D frame that caused initiation of the recovery process with the reference frame does not meet the reference criterion, the processor circuit may be operably configured to provide feedback to the operator of the handheld scanner that a operator intervention is required.
The processor circuit may be operably configured to provide feedback to the operator by directing the operator to re-scan a portion of the object.
The handheld scanner may be operable to generate further images of the object and the processor circuit may be operably configured to process the images to generate a further 3D frame for the re-scanned portion of the object and to compare the further 3D frame with a 3D frame preceding the 3D frame that caused initiation of the recovery process and if a result of the comparison meets the correspondence criterion, continue the scan, and compare the further 3D frame with the reference frame and if a result of the comparison meets the correspondence criterion, continue the scan.
The processor circuit may be operably configured to provide feedback to the operator of the handheld scanner that an operator intervention is required by at least one of generating a visual warning, causing the handheld scanner to vibrate, displaying a warning 3D frame on a 3D frame display in view of the operator, and generating an audible warning.
The processor circuit may be operably configured to provide feedback to the operator by designating at least one preceding 3D frame as a reference frame and to initiate the recovery process by generating operator feedback directing the operator to position the handheld scanner to generate a further image from a location proximate the reference frame, processing the image to generate a 3D frame and comparing the 3D frame with the reference frame, determining whether a result of the comparison meets a correspondence criterion, and resuming the scan of the object when the correspondence criterion is met.
The processor circuit may be operably configured to designate at least one preceding 3D frame as a reference frame, and determine whether there has been an interruption in generating images of the object, and in response comparing a subsequent 3D frame with the reference frame and resuming the scan of the object if a result of the comparison with the reference frame meets the correspondence criterion.
The processor circuit may be operably configured to determine whether there has been an interruption in generating images of the object by determining whether an elapsed time between successive images meets an interruption criterion.
The handheld scanner may include a single camera, and the single camera may be operably configured to generate images of the object from the successive plurality of handheld scanner positions with respect to the object by projecting a pattern of light onto the surface of the object, capturing an image of the surface while being illuminated by the pattern of light, capturing a further image of the surface when not illuminated by the pattern of light, and the processor circuit may be operably configured to compare each successive 3D frame with at least one preceding 3D frame by using information provided by the further image to provide an estimate of the position of the handheld scanner for use in the comparison.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
In drawings which illustrate embodiments of the invention,
Referring to
The computer 103 includes a display 118 for displaying image data and a keyboard 119 for receiving operator input. The computer 103 also includes a processor circuit 150, operable to process the image data received on the cable 116 from the handheld scanner 102.
In the embodiment shown the scanning system 100 also includes a computer aided manufacturing (CAM) machine 120. The CAM machine 120 generally includes a machine tool portion 122 for machining the appliance. In this case the machined appliance is a mold 124 which is subsequently used to produce a final appliance by molding a thermoplastic or other material over the mold. The machined mold 124 has a shape defined by the computer representation of the mold and generally corresponds to the shape of the scanned body part, with alterations for fit, comfort, and/or support.
The CAM machine 120 also includes a controller 126 for controlling the machine tool portion 122 of the CAM machine. The controller 126 is in communication with the computer 103 for receiving a signal encoded with instructions operable to control the CAM machine 120 to produce the machined appliance 124. Alternatively the instructions may be output to a computer readable medium or memory for manual transfer to the CAM machine 120. An example of suitable CAM machines are the CANFIT-PLUS™ Carver and the CANFIT™ 6-Axis Carver, both produced by Vorum Research Corporation of British Columbia, Canada.
The processor circuit 150 is shown in greater detail in
Program codes for directing the microprocessor 152 to carry out various CAD functions are stored in the program memory 154, which may be implemented as a random access memory (RAM), and/or a hard disc drive (HDD), or a combination thereof. The program memory 154 includes a block of codes 168 for directing the microprocessor 152 to provide general operating system (O/S) functions, and a block of codes 170 for directing the microprocessor 152 to provide 3D scanning functions for generating the 3D scan of the object.
The media reader 160 facilitates loading program codes into the program memory 154 from a computer readable medium 162 such as a CD ROM disc 164, a flash memory (not shown), or a computer readable signal 166 such as would be received over a network such as the internet, for example.
The I/O 158 includes a scanner interface 174 having an input 176 for receiving signals encoded with image data received on the cable 116 from the handheld scanner 102. In one embodiment the scanner interface may be an IEEE 1394b interface (firewire). In other embodiments a USB interface such as a USB 3.0 may be used.
The I/O 158 also includes a second interface 178 having an output 180 for producing the signal encoded with shape representation data or carving instructions for controlling the CAM machine 120 to produce the appliance. The interfaces 174 and 178 may be universal serial bus (USB) or RS232 serial interfaces, for example.
The RAM 156 includes a plurality of storage locations, including an image data buffer 182 for storing images captured by the handheld scanner 102, a 3D frame buffer 184 for storing 3D frame data, a reference frame pointer location 186 for storing one or more pointers nref designating a reference frame or frames, and a 3D mesh data store 188 for storing the resulting object scan.
Referring to
The process 220 starts at block 222 when operator depresses the actuator button 114. Block 224 directs the microprocessor 152 to receive a captured image of the surface 112 of the object 108 at the input 178 of the interface 174. As disclosed above, the handheld scanner 102 illuminates the object 108 with the grid of light 106, and causes the camera 110 to capture an image of the surface. In one embodiment, a further image may be captured without the grid of light 106 being projected on the surface. The images include image data representing the surface, for example in a JPEG compressed data format. Block 226 then directs the microprocessor 152 to save the image data in the image data buffer 182 of the RAM 156. In one embodiment, block 226 also directs the microprocessor 152 to assign an image pointer n, where n is an integer value for identifying the image.
The process then continues at block 228, which directs the microprocessor 152 to determine whether additional image data is available at the input 176 of the scanner interface 174. If at block 228 image data is available, the microprocessor 152 is directed back to block 224 and the blocks 224-228 of the process 220 are repeated. If at block 228 no further image data is available, the microprocessor 152 is directed to 230 and the process 220 is suspended. For example, when an operator of the scanner 102 pauses scanning by releasing the actuator button 114, the process 220 is suspended at 230 awaiting further image data from the scanner.
In embodiments where the microprocessor 152 is implemented using a multi-core processor, one or more of the processor cores may be dedicated to executing the process 220.
Referring to
Referring to
Block 256 then directs the microprocessor 152 to determine whether the image pointer is greater than zero, indicating that two or more images have been processed. If at block 256, only a single image has been processed, the microprocessor 152 is directed back to block 254 and a further image is processed. If at block 256, more then one image has already been processed, the microprocessor 152 is directed to block 260, which directs the microprocessor 152 to determine whether the image pointer is greater than 6, indicating that a reference frame has already been identified. In this embodiment a reference frame is selected from a first plurality of 3D frames, which in this case involves selecting the reference from the first 6 frames (i.e. frames 0-5).
If at block 260, n>5, a reference frame will have already been identified and the microprocessor 152 is directed to block 262. Block 262 directs the microprocessor 152 to compare the current 3D frame with the previous 3D frame (e.g. 3D frame(n−1)) and to generate a comparison result. In one embodiment, the comparison involves attempting to align the current 3D frame to at least one preceding frame (for example, frame 1 to frame 0). A common algorithm that is used to perform such an alignment is the Iterative Closest Point (ICP) algorithm. For example, an ICP algorithm may be implemented to transform 3D frame 1 to best align to the 3D frame 0 by iteratively revising a transformation (i.e. a combination of translation and rotation) to minimize the distances between point in the 3D frame 1 and planes in 3D frame 0. The ICP algorithm evaluates each transform iteration based on a mean squared error cost function, which may be used as a metric for comparing results of successive transformations. A final value of the mean squared error cost function also provides a measure for determining how well the transformed frame aligns to the preceding frame. In one embodiment the further image captured at block 224 of the process 220 (shown in
The process 250 then continues at block 264, which directs the microprocessor 152 to determine whether a result of the comparison at block 262 meets a correspondence criterion associated with generation of a 3D representation of the surface of the object. For example, in one embodiment the criterion may be based on the ICP algorithm finding a transform that results in a final mean squared error cost function below a threshold value. Additional criteria may also be evaluated as part of the criterion at block 264. In one embodiment block 264 may also direct the microprocessor 152 to determine a degree of overlap between the frames. For example, if at least 500 points in 3D frame 1 lie within 0.5 mm of points in 3D frame 0, the frames may be considered to meet this additional criterion.
If at block 264, the correspondence criterion is met, then the microprocessor 152 is directed to save transformed coordinates for the 3D frame in the 3D mesh data store 188 of the RAM 156. The microprocessor 152 is also directed back to block 258, where the pointer n is incremented, and then back to block 254 for processing of the next image in the image data buffer 182.
When a successful comparison at block 264 is reached, the transformation provided by the ICP algorithm transforms the 3D frame into the same coordinate frame as the 3D frame that it was compared to. In the embodiment shown in
If at block 260, n≤5, a reference frame has not yet been identified and the microprocessor 152 is directed to block 268. Block 268 directs the microprocessor 152 to compute a frame quality metric. In one embodiment the frame quality metric involves determining whether the 3D frame meets an image quality criterion, which may be deduced from the amount of data in the 3D frame, an assessment of discernable features and/or topological content in the frame. In one embodiment the amount of data in the 3D frame is computed by dividing the number of vertices in the polygon mesh by the number of separate meshes in the 3D frame. Discernable features may be detected using an algorithm such as SURF (Speeded Up Robust Features), or SIFT (Scale-invariant feature transform), which are standard computer vision algorithms used to detect local features in images. Topological features may include local minimums or maximums of a convexity measurement calculated for the polygon mesh. Additional criteria may also be applied in determining whether a 3D frame is suitable for use as a reference frame.
The process then continues at block 270, which directs the microprocessor 152 to determine whether image quality of the current 3D frame is an improvement on the previous best frame quality based on the frame quality metric. If this is the case then the microprocessor 152 is directed to block 272, which directs the microprocessor 152 to designate the current 3D frame as the reference 3D frame. Referring to
The above embodiment has been described with reference to a single reference 3D frame. However, in other embodiments a plurality of reference frames may be detected and designated while scanning the object, such that when necessary the scan can resume from a closest reference frame. If a sufficient number of reference frames are designated, there will be a good likelihood that at least one reference frame is sufficiently in view to permit scanning to resume without the operator having to reposition the handheld scanner 102.
If at block 264, the correspondence criterion is not met, then the microprocessor 152 is directed to block 266, which directs the microprocessor to initiate a recovery process. In one embodiment block 266 may also direct the microprocessor 152 to generate a tone or other warning to inform the operator that the recovery process has been initiated. The correspondence criterion may not be met when the operator moves the scanner too fast, or the frame has poor quality (as described above in relation to block 268). Other conditions that may result in the correspondence criterion not being met may be when there is insufficient capture of surface of the object 108 and/or capture of background behind the object. In these cases, the inclusion of the 3D frame may result in an unsuccessful reconstruction of the surface 112 of the object 108. Referring back to
Alternatively, the correspondence criterion may also not be met if the operator were to deliberately discontinue scanning at image 212 and resume scanning again at image 214′. For example, the operator may release the actuator button 114 on the handheld scanner 102 at the image location 212, thus interrupting image capture, and then move the scanner to capture further images at the scanner positions 214′, 216 and 218. In practice, the scan of the object 108 may proceed on the basis of several chains of successive images (such as the chain of images at scanner positions 202-210, and the chain of images at scanner positions 216′, 2-6, 218 etc). Advantageously, scanning the object 108 as shown in
In embodiments where the microprocessor 152 is implemented using a multi-core processor, one or more of the processor cores may be dedicated to executing the process 250.
Referring to
Block 308 then directs the microprocessor 152 to compare 3D frame n+1 with the frame n (at scanner position 212), i.e. the current frame. If at block 310 the result of the comparison meets the correspondence criterion, the microprocessor 152 is directed to block 312, which directs the microprocessor to keep the 3D frame n. If at block 310 the result of the comparison does not meet the correspondence criterion, the microprocessor 152 is directed to block 314, which directs the microprocessor to discard the 3D frame n. Block 306 thus first determines whether the next frame in sequence (frame n+1) is able to align to frame n−1 which would permit the scan to continue. Blocks 308-316 then determine whether the frame n should be kept or discarded based on whether the succeeding frame n+1 is able to align to frame n. Whether the frame n is kept or discarded at blocks 312 or 316, the process 300 continues at block 314 which directs the microprocessor 152 back to block 254 in the process 250 of
If at block 306 the result of the comparison does not meet the correspondence criterion, the microprocessor 152 is directed to block 318. Block 318 directs the microprocessor 152 to compare the successive frame n+1 with the 3D reference frame, as designated in the process 250 of
If at block 320, the result of the comparison does not meet the correspondence criterion, the microprocessor 152 is directed to block 324, which directs the microprocessor to signal a break in the frame processing. Signaling the break may involve sounding a tone to warn the operator that the scan is unable to complete successfully. Alternatively, the break may be signaled by other means, such as causing the handheld scanner 102 to vibrate, generating a visual warning, and/or displaying a highlighted 3D frame on an 3D frame display in view of the operator, for example. Block 324 also directs the microprocessor 152 to block 326, which directs the microprocessor 152 to flush the image data buffer 182 and the 3D frame buffer 184. When the break is signaled, further captured images in the image data buffer 182 and the processed 3D frames in the 3D frame buffer 184 are not able to align to the preceding frames and should thus be discarded. Block 326 also directs the microprocessor 152 to provide feedback to the operator for resuming the scan. For example, the operator may be directed to release the actuator button 114 and a representation of the object scan indicating the location of the last 3D frame that met the correspondence criterion may be displayed on the display of the computer 103. The displayed representation may include a raw image of the object from the location of the last 3D frame and/or a marker on a surface of a 3D rendering of the 3D mesh stored in the 3D mesh data store 188.
The scan resumes when the operator depresses the actuator button 114 and the process 300 continues at block 328, which directs the microprocessor 152 compare the 3D frame for the next captured image (n+2) with the last 3D frame that met the correspondence criterion (i.e. 3D frame n). If at block 330, the result of the comparison meets the correspondence criterion, the microprocessor 152 is directed to block 338, which directs the microprocessor to continue scanning the object 108 with reference to the 3D frame n.
If at block 330, the result of the comparison does not meet the correspondence criterion, the microprocessor 152 is directed to block 332, which directs the microprocessor to compare the 3D frame n+2 with the reference 3D frame. If at block 334, the result of the comparison meets the correspondence criterion, the microprocessor 152 is directed back to block 322, which directs the microprocessor to continue scanning the object 108 with reference to the 3D reference frame.
If at block 334, the result of the comparison does not meet the correspondence criterion, the microprocessor 152 is directed back to block 324, which directs the microprocessor to signal another break, and blocks 326 to 338 are repeated.
Advantageously, the process embodiments disclosed above permit scanning of the object 108 to proceed with a minimum of operator interaction with the computer 103. The system 100 automatically attempts to resume scanning at a reference position if a 3D frame does not align to a preceding 3D frame. Operator input is only required in the event where the 3D frame also does not align to the reference frame.
While specific embodiments of the invention have been described and illustrated, such embodiments should be considered illustrative of the invention only and not as limiting the invention as construed in accordance with the accompanying claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CA2015/000033 | 1/19/2015 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2015/109387 | 7/30/2015 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6744537 | Chiba | Jun 2004 | B1 |
7940260 | Kriveshko | May 2011 | B2 |
20020006217 | Rubbert et al. | Jan 2002 | A1 |
20070171220 | Kriveshko | Jul 2007 | A1 |
20120062557 | Dillon et al. | Mar 2012 | A1 |
20120300900 | Koivisto | Nov 2012 | A1 |
20130293684 | Becker et al. | Nov 2013 | A1 |
Number | Date | Country |
---|---|---|
2009063087 | May 2009 | WO |
2009089126 | Jul 2009 | WO |
2012115863 | Aug 2012 | WO |
Entry |
---|
Basic, Goran, Authorized Officer, Canadian Intellectual Property Office, “International Search Report” in connection with related International Application No. PCT/CA2015/000033, dated Apr. 27, 2015, 4 pages. |
Basic, Goran, Authorized Officer, Canadian Intellectual Property Office, “Written Opinion of the International Searching Authority” in connection with related International Application No. PCT/CA2015/000033, dated Apr. 27, 2015, 4 pages. |
European Patent Office, “Extended European Search Report” in connection with related International Application No. EP15740156, dated Aug. 28, 2017, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20160331278 A1 | Nov 2016 | US |
Number | Date | Country | |
---|---|---|---|
61929857 | Jan 2014 | US |