The present disclosure generally relates to digital image stitching systems and methods, and more particularly to, digital image stitching systems and methods for generating one or more panoramic image views.
Conventional digital camera technology provides users with the ability to capture digital images. In many instances, the digital images are captured in a typical manner where the images have a certain dimension or resolution, which may be expressed in a pixel count of the digital image (e.g., 2048×1536 for a 3 megapixel image, 5184×3546 for an 18 mega pixel image, etc.) in a certain area (e.g., in a 6×3 inch area, etc.). Such digital images, however, typically have a limited field of view (FOV), especially when such images are captured by conventional cameras, such as those on mobile devices. Moreover, although conventional digital camera technology offers users the ability to capture movies (e.g., multiple image frames) and take “panoramic photos” that may comprise a multitude of captured images, such movies or photos are typically captured for human consumption, that is, for later viewing by human users on mobile devices and the like. Such images lack precession or orientation data in order to determine orientation of multiple images captured overtime in space when the camera is positioned, turned, or otherwise moved differently as images are captured. This is especially so when such images are captured in a small space or area, such as with in a mouth for oral imaging applications.
A problem arises, therefore, when such conventional digital images are used for digital and machine vision applications, where orientation and location in space, become important for a machine vision application or otherwise digital application to determine or classify objects within such images.
For the foregoing reasons, there is a need for digital image stitching systems and methods for generating one or more panoramic image views to allow for enhanced imaging precision, as further described herein.
As described herein, digital image stitching systems and methods are disclosed for generating one or more panoramic image views. Such digital image stitching systems and methods provide digital imaging based solutions for overcoming problems that arise from correctly identifying orientations, dimensions, and locations in space for machine vision applications or otherwise digital image applications. The digital image stitching systems and methods described herein may be used to accurately determine orientation, rotation, and relationships of digital images captured in a given space or field of view (FOV) for purposes generating one or more panoramic image views. Panoramic or panorama, as referred herein, may be any wide-angle view, wide-ranging view, or otherwise multi-faceted or multi-part view or representation. A panoramic image view may depict or image of a physical space, environment, or otherwise target feature object or object(s) as a panorama.
For example, in at least in one application and when using a conventional image capture device, such as an intraoral camera alone, to capture digital images of an oral area or cavity, due to the limited space in the oral area or cavity, and limitations of intraoral camera resolution, the FOV can be quite limiting, usually reserved to a few teeth (e.g., usually 2-3) only. It is therefore very difficult for a user or machine vision application to analyze or understand the digital image or the oral area or cavity as captured by the intra oral camera, e.g., for the determination or provision of feedback of oral health. This can be especially problematic for digital images containing oral features because there are generally not many textures or features on the teeth that are depicted in a standard image. In addition, some teeth, as depicted in a standard digital image, may be glossy, contain saliva/drool, or otherwise have some reflective lighting in certain areas or spots within the digital image. Still further, digital images depicting an oral area may contain only teeth, gums, or oral background areas, that provide little information for analyzing or understanding the oral application area (e.g., a user's mouth) based on the images as captured by a conventional imaging device. In addition, images that are small in size may be incorrectly double counted causing faulty image analysis.
The digital image stitching systems and methods described herein, however, synchronizes or otherwise use sensor data (e.g., which may come from multiple and/or different sensor types) to correct the rotation angle first, and then reconstruct individually captured 2D images to generate a 2D panorama view, all without reliance on 3D data as captured from a 3D camera, for example, as would be required by a 3D depth camera or 3D scanner. For example, the digital image stitching systems and methods described herein improve over prior art methods by using both camera information (e.g., digital images) and sensors, e.g., an inertial measurement unit (IMU) and related motion data, each comprising different data types that may be used for machine vision purposes to correctly orient, rotate, and/or stich together images for providing an accurate wider FOV in a given application areas.
For an oral application, by way of non-limiting example, an intraoral camera associated with an IMU sensor may be used to capture limited FOV images. By stitching of these limited images, with rotational correction of the IMU sensor data, a 2D panoramic image view may be reconstructed from the original limited images. In addition, the moving distance of the intraoral camera device may be calculated and stored, thereby providing the machine vision application, or user viewing the 2D panoramic image, much more precise feedback on the progress or movement of the camera scanning in 3D space. Together, the camera and IMU, and tracking of data of each, improve the prediction results of a position model, which may be used to detect, determine, or track objects in the 2D panoramic image. The position model or otherwise 2D panoramic image can be used for various end use applications, such determining zones of an application areas (e.g., a mouth). Still further, the position model or otherwise 2D panoramic image can be further used to focus on specific areas of an application, for example, defining precision from a zonal level to tooth level, and also one or more location(s) of oral issues related to a user's mouth, including at the tooth level or otherwise the user's mouth as a whole.
In addition, in various aspects, multiple position models or otherwise 2D panoramic images may be tracked over time to determine changes at specific locations (common locations) detected within multiple images over a period of time. For example, with respect to an oral application, multiple position models or otherwise 2D panoramic images may be used to track the evolution of hard tissue (e.g., teeth) and soft tissue (e.g., gums, tongue, cheek) and related issues such as staining, swelling, loss, tartar, wear, salivary calculus, mismatch, and other issues over time for a user's mouth. In addition, the position model or otherwise 2D panoramic image may be used to reconstruct application areas, such as entire rows of teeth image, and abstract the scan/brush path to in order to uniquely identify an individual based on tooth pattern or moth cavity, etc.
Still further, a generated or constructed 2D panorama image may be used to provide user feedback or guidance, for example, on a graphic user interface (GUI) or otherwise display screen, including any of the 2D panorama image itself or data or information determined therefrom or related therein. It is to be understood that an oral application area is but one application area type and that other application areas, as described herein, may be used as well.
More specifically, as described herein, a digital image stitching method is disclosed for generating one or more panoramic image views. The digital image stitching method may comprise capturing, by a camera of a scanner device, a plurality of digital images depicting a target feature within an application area. The plurality of digital images may include at least a first image and a second image. The digital image stitching method may further comprise capturing, by a sensor coupled to the scanner device, motion data as the scanner device moves relative to the target feature. The digital image stitching method may further comprise determining relative position data based on the motion data. The relative position data may include at least first position data corresponding to the first image and second position data corresponding to the second image. The digital image stitching method may further comprise generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image. The digital image stitching method may further comprise generating, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
In addition, as described herein, a digital image stitching system is disclosed. The digital image stitching system is configured to generate one or more panoramic image views. The digital image stitching system may comprise a scanner device including a camera configured to capture digital images. The digital image stitching system may further comprise a sensor coupled to the scanner device and configured to capture motion data. The digital image stitching system may further comprise one or more processors communicatively coupled to the scanner device. The digital image stitching system may further comprise a computer readable medium storing computing instructions configured to execute on the one or more processors. The computing instructions, when executed by the one or more processors, may cause the one or more processors to capture, by the camera, a plurality of digital images depicting a target feature within an application area. The plurality of digital images may comprise at least a first image and a second image. The computing instructions, when executed by the one or more processors, may further cause the one or more processors to capture, by the sensor, the motion data as the scanner device moves relative to the target feature. The computing instructions, when executed by the one or more processors, may further cause the one or more processors to determine relative position data based on the motion data. The relative position data may include at least first position data corresponding to the first image and second position data corresponding to the second image. The computing instructions, when executed by the one or more processors, may further cause the one or more processors to generate, based on the relative position data, at least one of an angle or a position of the second image relative to the first image. The computing instructions, when executed by the one or more processors, may further cause the one or more processors to generate, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
Further, as described herein, a tangible, non-transitory computer-readable medium storing instructions for generating one or more panoramic image views is disclosed. The instructions, when executed by one or more processors, may cause the one or more processors to capture, by a camera of a scanner device, a plurality of digital images depicting a target feature within an application area. The plurality of digital images may include at least a first image and a second image. The instructions, when executed by one or more processors, may further cause the one or more processors to capture, by a sensor coupled to the scanner device, motion data as the scanner device moves relative to the target feature. The instructions, when executed by one or more processors, may further cause the one or more processors to determine relative position data based on the motion data. The relative position data may include at least first position data corresponding to the first image and second position data corresponding to the second image. The instructions, when executed by one or more processors, may further cause the one or more processors to generate, based on the relative position data, at least one of an angle or a position of the second image relative to the first image. The instructions, when executed by one or more processors, may further cause the one or more processors to generate, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
The present disclosure relates to improvements to other technologies or technical fields at least because the present disclosure describes or introduces improvements to computing devices in the digital imaging field, whereby digital image stitching systems and methods execute by use of scanner device(s) or computing devices and improves the field of digital imaging manipulation by generating more accurate, corrected, or otherwise enhanced panoramic image view(s) via rotation based on sensor data to improve the precision of template matching on a digital image frame-by-frame basis. Accordingly, the digital images, e.g., panoramic image view(s), generated by the disclosed systems and methods allow for more accurate images that can be used in a variety of end purposes, such as oral treatment or otherwise as described herein.
Still further, the present disclosure relates to improvement to other technologies or technical fields at least because the present disclosure describes or introduces improvements to computing devices in the field of security and/or image processing, where, at least in some aspects, scanner behaviors of users may be determined to uniquely identify users without depicting personal identifiable information (PII) of a given user. By using the systems and methods described herein, a scan behavior can be abstracted from any detailed PII. Such features provide a security improvement, i.e., where the removal of PII (e.g., private area features) provides an improvement over prior systems that require images of the user, especially ones that may be transmitted over a network (e.g., the Internet). Accordingly, the systems and methods described herein operate without the need for such essential information, which provides an improvement, e.g., a security improvement, over prior systems. In addition, the use of scan behavior patterns, at least in some aspects, allows the underlying system to store and/or process fewer (or in some cases no) digital images, which results in a performance increase to the underlying system as a whole because the fewer images require less storage memory and/or processing resources to store, process, and/or otherwise manipulate by the underlying computer system.
Still further, the present disclosure includes applying certain of the claim elements with, or by use of, a particular machine, e.g., a scanner device, which may comprise a intraoral device with a camera for capturing images of a user's mouth and a sensor coupled to the scanner device for capturing motion data that is relative to, or that corresponds to, the image data.
In addition, the present disclosure includes specific features other than what is well-understood, routine, conventional activity in the field, and that add unconventional steps that confine the claim to a particular useful application, e.g., digital image stitching method for generating one or more panoramic image views.
Advantages will become more apparent to those of ordinary skill in the art from the following description of the preferred aspects which have been shown and described by way of illustration. As will be realized, the present aspects may be capable of other and different aspects, and their details are capable of modification in various respects. Accordingly, the drawings and description are to be regarded as illustrative in nature and not as restrictive.
The Figures described below depict various aspects of the system and methods disclosed therein. It should be understood that each Figure depicts a particular aspect of the disclosed system and methods, and that each of the Figures is intended to accord with a possible aspect thereof. Further, wherever possible, the following description refers to the reference numerals included in the following Figures, in which features depicted in multiple Figures are designated with consistent reference numerals.
There are shown in the drawings arrangements which are presently discussed, it being understood, however, that the present aspects are not limited to the precise arrangements and instrumentalities shown, wherein:
The Figures depict preferred aspects for purposes of illustration only. Alternative aspects of the systems and methods illustrated herein may be employed without departing from the principles of the invention described herein.
Scanner device 101 comprises a camera 101c configured to capture digital images. The camera may be configured for various different purposes, and thus, be configured to capture digital images at various different zoom levels, digital resolutions, or quality based on the application for which camera 101c is used. For example, in aspects comprising oral applications, camera 101c may comprise an intraoral camera and/or a hyperspectral camera. In still further aspects, the camera may be embedded within, at least partially contained by, or otherwise part of or coupled to an oral device or oral treatment device, e.g., such as a toothbrush or a mouth piece, which may contain one or more cameras for capturing images at different positions for image stitching as described herein. Further, for application involving a cleaning device for cleaning a surface, such as floor, camera 101c may comprise a floor camera configured to be angled toward the ground and for imaging a surface (e.g., the floor) as the camera moves along the surface. Still further, for applications involving human skin or tissue, the camera may comprise a skin camera capable of capturing digital images having a high resolution or high definition for detailing aspects of human skin, such as follicles, pores, or the like. In some aspects, scanner device 101 may comprise a physical distancing element, which may be an attachment or a shroud physically coupled to the scanner device. The physical distancing element (e.g., shroud) is configured to maintain a constant distance (e.g., 1-10 millimeters) between the camera (e.g., camera 101c) and a target feature and/or an application area being imaged by the camera. For example, the physical distancing element may be attached to the scanner device where the user places the physical distancing element portion of the scanner device on, or within a proximity to, the user as the scanner moves relative to the user. It is to be understood, however, that other uses or configurations of the physical distancing element may be used in order to maintain a constant distance between the camera (e.g., camera 101c) and a target feature and/or an application area being imaged by the camera.
Digital images, as captured by camera 101c, may comprise pixel data (e.g., RGB data) comprising feature data and corresponding to one or more image features, within the respective image. The digital images may comprise pixel data. With respect to digital images as described herein, pixel data may comprise individual points or squares of data within an image, where each point or square represents a single pixel within an image. Each pixel may be at a specific location within an image. In addition, each pixel may have a specific color (or lack thereof). Pixel color, may be determined by a color format and related channel data associated with a given pixel. For example, a popular color format is a 1976 CIELAB (also referenced herein as the “CIE L*-a*-b*” or simply “L*a*b*” or “LAB” color format) color format that is configured to mimic the human perception of color. Namely, the L*a*b* color format is designed such that the amount of numerical change in the three values representing the L*a*b* color format (e.g., L*, a*, and b*) corresponds roughly to the same amount of visually perceived change by a human. This color format is advantageous, for example, because the L*a*b* gamut (e.g., the complete subset of colors included as part of the color format) includes both the gamuts of Red (R), Green (G), and Blue (B) (collectively RGB) and Cyan (C), Magenta (M), Yellow (Y), and Black (K) (collectively CMYK) color formats.
In the L*a*b* color format, color is viewed as point in three dimensional space, as defined by the three-dimensional coordinate system (L*, a*, b*), where each of the L* data, the a* data, and the b* data may correspond to individual color channels, and may therefore be referenced as channel data. In this three-dimensional coordinate system, the L* axis describes the brightness (luminance) of the color with values from 0 (black) to 100 (white). The a* axis describes the green or red ratio of a color with positive a* values (+a*) indicating red hue and negative a* values (−a*) indicating green hue. The b* axis describes the blue or yellow ratio of a color with positive b* values (+b*) indicating yellow hue and negative b* values (−b*) indicating blue hue. Generally, the values corresponding to the a* and b* axes may be unbounded, such that the a* and b* axes may include any suitable numerical values to express the axis boundaries. However, the a* and b* axes may typically include lower and upper boundaries that range from approximately 150 to −150. Thus, in this manner, each pixel color value may be represented as a three-tuple of the L*, a*, and b* values to create a final color for a given pixel.
As another example, an additional or alternative color format includes the red-green-blue (RGB) format having red, green, and blue channels. That is, in the RGB format, data of a pixel is represented by three numerical RGB components (Red, Green, Blue), that may be referred to as a channel data, to manipulate the color of a pixel's area within the image. In some implementations, the three RGB components may be represented as three 8-bit numbers for each pixel. Three 8-bit bytes (one byte for each of RGB) may be used to generate 24-bit color. Each 8-bit RGB component can have 256 possible values, ranging from 0 to 255 (i.e., in the base 2 binary system, an 8-bit byte can contain one of 256 numeric values ranging from 0 to 255). This channel data (R, G, and B) can be assigned a value from 0 to 255 that can be used to set the pixel's color. For example, three values like (250, 165, 0), meaning (Red=250, Green=165, Blue=0), can denote one Orange pixel. As a further example, (Red=255, Green=255, Blue=0) means Red and Green, each fully saturated (255 is as bright as 8 bits can be), with no Blue (zero), with the resulting color being Yellow. As a still further example, the color black has an RGB value of (Red=0, Green=0, Blue=0) and white has an RGB value of (Red=255, Green=255, Blue=255). Gray has the property of having equal or similar RGB values, for example, (Red=220, Green=220, Blue=220) is a light gray (near white), and (Red=40, Green=40, Blue=40) is a dark gray (near black).
In this way, the composite of three RGB values creates a final color for a given pixel. With a 24-bit RGB color image, using 3 bytes to define a color, there can be 256 shades of red, and 256 shades of green, and 256 shades of blue. This provides 256×256×256, i.e., 16.7 million possible combinations or colors for 24 bit RGB color images. As such, a pixel's RGB data value indicates a degree of color or light each of a Red, a Green, and a Blue pixel is comprised of. The three colors, and their intensity levels, are combined at that image pixel, i.e., at that pixel location on a display screen, to illuminate a display screen at that location with that color. In is to be understood, however, that other bit sizes, having fewer or more bits, e.g., 10-bits, may be used to result in fewer or more overall colors and ranges. Further, it is to be understood that the pixel data may contain additional or alternative color format and channel data. For example, the pixel data may include color data expressed in a hue saturation value (HSV) format or hue saturation lightness (HSL) format.
As a whole, the various pixels, positioned together in a grid pattern, form a digital image or portion thereof. A single digital image can comprise thousands or millions of pixels or channels. Images can be captured, generated, stored, and/or transmitted in a number of formats, such as JPEG, TIFF, PNG and GIF. These formats use pixels to store or represent the image. The images may be stored on a memory of scanner device 101 and/or a mobile device 111c1, or other electronic or digital storage as described herein. Manipulation of images, and pixel data, for example, via image stitching is further described herein with respect to
With reference to
Scanner device 101 further comprises one or more processors communicatively coupled to scanner device 101. The one or more processors may initiate the capture of the images and motion data or otherwise sensor data. The one or more processors may also receive the digital images, as captured by camera 101c, and the motion data as captured by sensor 101s. The one or more processors may be processors on scanner device 101 itself. Additionally, or alternatively, the one or more processors may be processors of a computing device remote to scanner device 101, such as mobile device 111c1, or a server (for example, see
As shown for
In the example aspect of
It is to be understood, however, that at least in some aspects, scanner device 101 may comprise, more generally, a non-oral scanning device that captures images and data for non-oral purposes, for example, as described for certain aspects herein.
Each of scanner device 101 and mobile device 111c1 may further comprise a computer readable medium (e.g., computer memory) storing computing instructions configured to execute on one or more processors, wherein the computing instructions, when executed by the one or more processors, cause the one or more processors to implement a digital image stitching algorithm, such as the digital image stitching method illustrated and described for
Server(s) 102 may further include a communication component configured to communicate (e.g., send and receive) data via one or more external/network port(s) to one or more networks or local terminals, such as computer network 120 and/or terminal 109 (for accessing digital images or motion data) described herein. In some embodiments, imaging server(s) 102 may include a client-server platform technology such as ASP.NET, Java J2EE, Ruby on Rails, Node.js, a web service or online API, responsive for receiving and responding to electronic requests. Server(s) 102 may implement the client-server platform technology that may interact, via the computer bus, with the memories(s) 106 (including the applications(s), component(s), API(s), data, etc. stored therein) and/or database 105 to implement or perform the machine readable instructions, methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein.
Server(s) 102 may also be communicatively coupled to database 105, which may store digital images, motion data, and/or other data, including digital images and motion data as captured by scanner device 101, as described herein. Such digital images, motion data, and/or other data as described herein may be transmitted between app 108 and app 108r, where app 108r can store and/or access such information to and from memory 106 and/or database 105. Memories (e.g., memory 106) may store machine readable instructions, including any of one or more application(s) (e.g., app 108r comprising a set of computing instructions as described herein), one or more software component(s), and/or one or more application programming interfaces (APIs), which may be implemented to facilitate or perform the features, functions, or other disclosure described herein, such as any methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein. For example, at least some of the applications, software components, or APIs may be configured to facilitate their various functionalities discussed herein. It should be appreciated that one or more other applications may be envisioned and that may be executed by the processor(s) (e.g., CPU 104).
In addition, the one or more processors (e.g., CPU 104) as described herein may be connected to the memories (e.g., memory 106) via a computer bus responsible for transmitting and/or receiving electronic data, data packets, or otherwise electronic signals to and from the processor(s) and memories in order to implement or perform the machine readable instructions, methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein. One or more processor(s) (e.g., CPU 104) may include, or interact with, one or more transceivers (e.g., WWAN, WLAN, and/or WPAN transceivers) functioning in accordance with IEEE standards, 3GPP standards, or other standards, and that may be used in receipt and transmission of data via external/network ports connected to computer network 120. In some aspects, the computer network 120 may comprise a private network or local area network (LAN). Additionally, or alternatively, the computer network may comprise a public network such as the Internet.
Server(s) 102 may further include or implement an operator interface configured to present information to an administrator or operator and/or receive inputs from the administrator or operator. As shown in
As described herein, in some embodiments, server(s) 102 may perform the functionalities as discussed herein as part of a “cloud” network or may otherwise communicate with other hardware or software components within the cloud to send, retrieve, or otherwise analyze data or information described herein, including communication between apps 108 and 108r.
In general, a computer program or computer based product, application (app), or code (e.g., computing instructions or software of the scanner device 101, panoramic imaging app 108, or otherwise of the digital image stitching systems and methods described herein) may be stored on a computer usable storage medium, or tangible, non-transitory computer-readable medium (e.g., random access memory (RAM), an optical disc, a universal serial bus (USB) drive, or the like) having such computer-readable program code or computer instructions embodied therein, wherein the computer-readable program code or computer instructions may be installed on or otherwise adapted to be executed by the processor(s) and/or processors of mobile devices (e.g., mobile device 111c1) (e.g., working in connection with the respective operating system) to facilitate, implement, or perform the machine readable instructions, methods, processes, elements or limitations, as illustrated, depicted, or described for the various flowcharts, illustrations, diagrams, figures, and/or other disclosure herein. In this regard, the program code may be implemented in any desired program language, and may be implemented as machine code, assembly code, byte code, interpretable source code or the like (e.g., via Golang, Python, C, C++, C #, Objective-C, Java, Scala, ActionScript, JavaScript, HTML, CSS, XML, etc.).
As shown in
Mobile device 111c1 may comprise a mobile devices and/or client device for accessing and/or communications with server(s) 102. Such mobile devices may comprise one or more mobile processor(s). In various embodiments, mobile device 111c1 comprises a mobile phone (e.g., a cellular phone), a tablet device, a personal data assistance (PDA), or the like, including, by non-limiting example, an APPLE iPhone or iPad device or a GOOGLE ANDROID based mobile phone or table. Mobile device 111c1 may communicate directly (e.g., via wireless communication 422, such as WIFI or BLUETOOTH) with scanner device 101. Additionally, or alternatively, scanner device 101 may communicate directly with base station 111b via wireless communication, such as such as WIFI or BLUETOOTH. In this way, wireless connectivity among mobile device 111c1, scanner device 101, and/or base station 111b provides communication between scanner device 101, mobile device 111c1, and server(s) 102 for sending and receiving data, such as digital images and/or motion data for generating one or more panoramic image views a described herein.
With reference to
More generally, the plurality of digital images may comprise at least a first image and a second image as captured by the camera (e.g., camera 101c). The first image and second image may be frames of a several digital captured in a sequence, e.g., for a video as captured by the camera (e.g., camera 101c). First image and second image may be referred to herein as frame to (e.g., captured at a first time) and frame t1 (e.g., captured at a second time), respectively. It is to be understood that frame t0 and t1 need not be consecutive frames in a set of image frames (e.g., as a video comprising a set of image frames). That is, in some aspects, frames t0 and t1 may be frames that are separated by one or more intermediary frames, for example, where t0 is a first frame in a set of image frames or video, but where and t1 is a third frame, or a seventh frame, or some other frame that is non-consecutive with respect to frame to in the set of image frames or video. In an additional aspect, an image may be dropped, deleted, or otherwise not used in generating the panoramic image view if such image it falls below a quality criterion. For example, the quality criterion may comprise image sharpness or resolution. More specifically, in such aspects, the plurality of images as captured by the camera may comprise a third image. The digital image stitching method 300 may include determining that the third image lacks a quality criterion (e.g., sharpness), which may require a threshold value in ordered to be fulfilled (e.g., a threshold level of sharpness may be required to use the third image). The digital image stitching method may discard the third image from use in generating the panoramic image view where third image falls below the threshold value or otherwise quality criterion.
In some aspects, the target feature (e.g., a tooth for an oral application area) may be detected within the application area before the plurality of images are captured. That is, in some aspects, the target feature may be automatically detected within the application area which causes the plurality of images to be captured. In such aspects, the targeted featured may be detected and/or sensed in the application whereby, for example, one or more pixels of preliminary digital images comprising the targeted feature is detected by the camera (e.g., camera 101c) before the digital images (e.g., the first image and the second image) are captured by the camera. Additionally, or alternatively, motion of sensor 101s, which may be detected from moving scanner device 101 in a unique way, may initiate captured of the digital images and/or motion data.
At block 304 digital image stitching method 300 comprises capturing, by a sensor (e.g., sensor 101s) coupled to the scanner device, motion data as the scanner device moves relative to the target feature. In various aspects, the sensor may be an inertial measurement unit (IMU). An IMU may comprise one or more of an accelerometer configured to measure velocity and/or acceleration, a gyroscope configured to measure rotation and/or rotational rate, and/or a magnetometer configured to measure or establish a cardinal direction (e.g., directional heading), etc.
At block 306 digital image stitching method 300 comprises determining relative position data based on the motion data. The relative position data may comprise at least first position data corresponding to the first image and second position data corresponding to the second image. The relative position data may define a movement from a first position to a second position, which may correspond to movement of the scanner device (e.g., scanner device 101) as the camera (e.g., camera 101c) capture first image and second image. It is to be understood that position data (e.g., relative position data, first position data, or second position data) may comprise sensor data such as accelerometer data or other such motion data, e.g., as captured by a sensor (e.g., sensor 101s) of the scanner device (e.g., scanner device 101), which may be, for example, data as captured by a gyroscope, an accelerator, a magnetic sensor, or an inertial measurement unit (IMU), or other such sensor device.
At block 308 digital image stitching method 300 comprises generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image. In some aspects, generation of the angle or the position of the second image may include adjusting the angle or position of the second image relative to the first image.
At block 310 digital image stitching method 300 comprises generating, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image. For example, and as further described herein for
In some aspects, digital image stitching method 300 may comprise outputting a control signal based on at least one of the panoramic image view, the plurality of images, or the position data. The control signal may be a wired or wireless control signal that controls an operation of at least the scanning device (e.g., scanner device 101), the camera (e.g., camera 101c), or the sensor (e.g., sensor 101s), and may be provided to alter or configure any of these devices to control the operation of digital image or sensor data capture or otherwise operation of these devices.
Each of the images (e.g., digital images 402 and 404) of
Generally, generation of an angle (e.g., angle 404a) and/or a position (e.g., position 406p) for a second image (e.g., digital image 404), or otherwise next image in a sequence of images (e.g., video having image frames), can comprise implementing a template matching as executed by digital image stitching algorithm 400. For example, in some aspects, template matching may be provided by an OPENCV, which is an open source software library that provides real-time computer or machine vision tools.
To implement template matching of digital image stitching algorithm 400, a target feature (e.g., target feature 402f) of a first digital image (e.g., digital image 402, which may be a first frame, frame to, in an image series captured by camera 101c) is identified. The target feature is then identified in the next frame, e.g., digital image 404a, which may be a second frame, frame_t1, in an image series captured by camera 101c. In digital image 404, the target feature 404f is shown as rotated relative to the first image (e.g., digital image 402), where such rotation may have occurred due to movement of camera 101c as scanner device 101 was moved relative to the target feature during image capture. Generally, as used herein, a feature can be recognized as, or may refer to, one or more image feature(s) that correspond to any one or more pixel(s) or group of pixels of an image. Moreover, the image can be an original image, video frame, or any processed image. Still further, a feature can also be recognized as a target feature of interest as selected or determined in an image, where, by non-limiting example, target feature(s) may comprise oral feature(s) such as plaque, calculus, tartar, teeth, gum, or any other oral features as described herein.
More specifically, as shown for
Once rotated, digital image stitching algorithm 400 can generate a panoramic image view (e.g., panoramic image view 406) from the first image and the second image (as rotated) by positioning the first image and the second image based on the sensor data. For example, generating a position of the second image 404 may comprise determining a first image feature (e.g., a central feature in for a template, e.g., template 402t, or otherwise pixel or group of pixels corresponding to an item depicted in the first image, such as target feature 4020 within the first image (e.g., digital image 402), and determining a second image feature (e.g., rotated target feature 404fr) within the second image. The first image feature (e.g., target feature 4020 may correspond to the second image feature (e.g., rotated target feature 404fr), where a coordinate distance is determined between the first image feature (e.g., target feature 4020 and the second image feature (e.g., rotated target feature 404fr). The coordinate distance may then be used to set the position of the second image as rotated by offsetting the second image from the first image by the coordinate distance. In the example, of
While
More specifically, as shown for
Once rotated, digital image stitching algorithm 400 can generate a panoramic image view (e.g., panoramic image view 506) distance, and/or trajectory information of or corresponding to the oral application area from the first image and the second image (as rotated) by positioning the first image and the second image based on the sensor data. For example, generating a position of the second image 504 may comprise determining a first image feature (e.g., a central feature in for a template, e.g., template 502t, or otherwise pixel or group of pixels corresponding to an item depicted in the first image, such as target feature 502f, a tooth) within the first image (e.g., digital image 502), and determining a second image feature (e.g., rotated target feature 504fr, the same tooth) within the second image. The first image feature (e.g., target feature 5020 may correspond to the second image feature (e.g., rotated target feature 504fr, the tooth), where a coordinate distance is determined between the first image feature (e.g., target feature 502f, the tooth) and the second image feature (e.g., rotated target feature 504fr, the tooth as rotated). The coordinate distance may then be used to set the position 506p of the second image as rotated by offsetting the second image from the first image by the coordinate distance. In the example of
As shown for
For example,
Similarly,
In some aspects, panoramic image view 600 may be generated following completion of determining that positioning of a plurality of images (e.g., digital images 602-608) in the application area (e.g., an oral application area) equals or exceeds a maximum coordinate distance (e.g., such as 400 pixels in the vertical dimension and/or 100 pixels in the horizontal dimension as illustrated for
Additionally, or alternatively, panoramic image view 600 may be generated following completion of determining that a threshold number of digital images of the plurality of images has been obtained (e.g., 60 images obtained for one or both of the vertical and/or horizontal dimensions as illustrated for
With reference to
Further, with reference to
In one aspect, digital image stitching (e.g., such as described herein for any one or more of
In some aspects, a positive indication is determined as part of the digital image stitching algorithm (e.g., such as described herein for any one or more of
Additionally, or alternatively, the positive indication may improve ignoring or forgoing images of zones that are outside of a given zone. For example, in some aspects, the plurality of digital images as captured by the camera further comprise a third image. In such aspects, the digital image stitching method or algorithm (e.g., such as described herein for any one or more of
Although
In such aspects, the digital image stitching systems and methods as described herein may comprise determining one or more zonal locations within the application area. The digital image stitching systems and methods may further comprise generating, based on the image matching of the second image (e.g., digital image 404) with the first image (e.g., digital image 402) based on the angle or the position of the second image, a distance moved in a horizontal direction and in a vertical direction. The distance moved may define a movement of the camera (e.g., camera 101c) from a first position when the first image was captured to a second position when the second image was captured. The digital image stitching systems and methods may further comprise generating, based on the distance moved in the horizontal direction and the vertical direction, a total distance defining a total movement. The digital image stitching systems and methods may further comprise determining, based on the total movement, at least one of (i) a coverage amount occurring within at least one of the one or more zonal locations, or (ii) a trajectory value defining a trajectory within at least one of the one or more zonal locations. The digital image stitching systems and methods may further comprise generating an indication of whether a successful scan occurred based on at least one of the coverage amount or the trajectory value. In some aspects, the indication may be displayed or rendered on a GUI as a graphic, such as a GUI as described herein for
In additional aspects, a total distance defining a total movement of the scanner device (e.g., scanner device 101) or portion thereof (e.g., camera 101c) may be determined. In such aspects, a digital image stitching method is implemented by capturing, by a camera (e.g., camera 101c) of a scanner device (e.g., sensor 101s), a plurality of digital images depicting a target feature within an application area. The plurality of digital images may comprise at least a first image (e.g., digital image 402) and a second image (e.g., digital image 404). The digital image stitching method may further comprise capturing, by a sensor (e.g., sensor 101s) coupled to the scanner device (e.g., scanner device 101), motion data as the scanner device moves relative to the target feature. The digital image stitching method may further comprise determining relative position data based on the motion data, the relative position data comprising at least first position data corresponding to the first image and second position data corresponding to the second image. The digital image stitching method may further comprise generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image. The digital image stitching method may further comprise generating, based on image matching of the first image with the second image and one or more distances moved in respective horizontal and vertical directions, a total distance defining a total movement. The total distance may comprise a total sum of the delta values in the y-axis (vertical) and x-axis (horizontal) positions among one or more of the images captured (e.g., the first image and the second image). In this way, delta values (i.e., δx and δy) may be calculated by the respective coordinate differences (i.e., δx=xt1−xt0; δy=yt1−yt0) and summed in order to determine the total distance defining the total movement of the sensor 101s. In some aspects, the digital imaging stitching method may comprise generating a panoramic image view (e.g., panoramic image view 406) depicting the target feature in a wider field of view of the application area than either the first image or the second image.
In additional aspects, a digital imaging method for determining a successful scan completion of a scan of a zone (e.g., one of zonal locations 700z1-700z16) is disclosed. In such aspects, the digital imaging method comprises capturing, by a camera (e.g., camera 101c) of a scanner device (e.g., scanner device 101), a plurality of digital images depicting a target feature within an application area. The plurality of digital images may comprise at least a first image (e.g., digital image 404) and a second image (e.g., digital image 406). The digital imaging method may further comprise capturing, by a sensor (e.g., sensor 101s) coupled to the scanner device, motion data as the scanner device moves relative to the target feature. The digital imaging method may further comprise determining relative position data based on the motion data. The relative position data may comprise at least first position data corresponding to the first image and second position data corresponding to the second image. The digital imaging method may further comprise generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image. The digital imaging method may further comprise generating, based on image matching of the second image with the first image based on the angle or the position of the second image, a distance moved in a horizontal direction or a distance moved in a vertical direction. Such horizontal direction and vertical direction may be determined by one or more delta values (i.e., δx and δy) as calculated based on respective coordinate differences (i.e., δx=xt1−xt0; δy=yt1−yt0) of the captured images. The distance may define movement of the camera when capturing the images, e.g., the first image and the second image. The digital imaging method may further comprise determining a zone scan completion (i.e., the completion of scanning a zone) based on the distance moved in the horizontal direction or the distance moved in the vertical direction. The zone scan completion may define a total distance of a total movement of the scan with respect to at least one preset threshold value. The preset threshold value may be defined in terms of quantity, where quantity relates to a quantity or number of images captured and scanned for a given zone. For example, the digital imaging method may further comprise determining the zone scan completion further based on a required amount of the plurality of images collected (e.g., quantity) within the zone with respect to at least one preset threshold number defining the completion of one or more zones. An example of quantity may be 115% meaning that 115% of the threshold number of images need to be detected in order to achieve successful scan completion of a zone. Additionally, or alternatively, the zone scan completion may be determined in terms of coverage, where coverage defines a number of pixels within the zone defining movement. An example of coverage may be 125% meaning that 125% of movement, as determined from a number of pixels traversed, or otherwise detected or scanned within the zone, needs to be detected in order to achieve successful scan completion of a zone (e.g., one of zonal locations 700z1-700z16). In some aspects, a zone scan completion may be determined based on a combined quantity and coverage preset threshold values where the combined value may be, for example a value of “1”, where the zone scan completion is achieved when the preset threshold value is equal to or greater than 1 (e.g., 100%). The preset threshold value (e.g. for coverage) and/or the preset threshold number (e.g., for quantity) may be predetermined or preset prior to beginning the scan with the scanner device 101. These values maybe updated, changed, or otherwise modified in order to adjust zone scan completion behavior.
As shown for
The prediction may be based on one or more of the panoramic image view 800 alone or the panoramic image view 800 and the position data (e.g., position data as determined from motion/sensor data). More specifically, by calculating distances of respective tooth positions (e.g., δx and/or δy), a series of images of teeth can be overlaid together to form a 2D panoramic image view, e.g., panoramic image view 800, as described herein for
Panoramic image view 900 and panoramic image view 950 represent different images for each of the respective users, and thus each of panoramic image view 900 and panoramic image view 950 illustrate personal identification (or finger printing) by using panoramic image views, e.g., images of teeth in the example of
Each user typically exhibits a unique brush behavior that can be reconstruct to identify the user and server as a type of oral “fingerprint.” It is to be noted, however, that a given user's brush behavior (or more generally scan behavior for non-oral aspects) is nonetheless highly abstracted, and does not necessarily give away personal identifiable information (PII) of a user. Thus, scanner behavior identification (e.g., brush behavior) can have the dual benefit of user identification but without revealing or comprising PII.
As shown in the example
Scan behavior diagram 1060 comprises a y-axis 1060y indicating brush movement (e.g., as determined by δy as described herein) of a first user (e.g., user 1). Further, behavior diagram 1060 comprises an x-axis 1060x indicating brush movement (e.g., as determined by δx as described herein) of the first user (e.g., user 1). Each of y-axis 1060y and x-axis 1060x are measured across ranges of −800 to 800, which may present a real distance (e.g., millimeters) or pixels moved (e.g., pixels moved within a given a panoramic image view or otherwise set of digital images as described herein). The first user's scan behavior (e.g., brush behavior) can then be determined based not only on distance moved, but also zonal locations the scanner device traveled to, during use of the scanner device (e.g., use of oral scanner, toothbrush, etc.). For example, as shown for scan behavior diagram 1060, the first user moved the oral scanner (e.g., scanner device 101) within his or her oral area (e.g., mouth) in a y-axis direction of about −200 to 600 and in an x-axis direction of about 0 to 400, and through zonal locations 700z1 (zone 1), 700z3 (zone 3), 700z6 (zone 6), and 700z11 (zone 11). In this way, the first user (e.g., user 1), has a unique behavior with respect to operating or otherwise using the scanner device within his or her oral area.
Similarly, scan behavior diagram 1080 comprises a y-axis 1080y indicating movement (e.g., as determined by δy as described herein) of a second user (e.g., user 2). Further, behavior diagram 1080 comprises an x-axis 1080x indicating brush movement (e.g., as determined by δx as described herein) of the second user (e.g., user 2). Each of y-axis 1080y and x-axis 1080x are measured across ranges of −800 to 800, which may present a real distance (e.g., millimeters) or pixels moved (e.g., pixels moved within a given a panoramic image view or otherwise set of digital images as described herein). The second user's scan behavior (e.g., brush behavior) can then be determined based not only on distance moved, but also zonal locations the scanner device traveled to, during use of the scanner device (e.g., use of oral scanner, toothbrush, etc.). For example, as shown for scan behavior diagram 1080, the second user moved the oral scanner (e.g., scanner device 101) within his or her oral area (e.g., mouth) in a y-axis direction of about −200 to 800 and in an x-axis direction of about −200 to 100, and through zonal locations 700z1 (zone 1) and 700z3 (zone 3). In this way, the first user (e.g., user 1), has a unique behavior with respect to operating or otherwise using the scanner device within his or her oral area.
In some aspects, the scan data may be collected for a given period of time (e.g., 15 seconds) such that the scan behaviors of some users may be more complete than others, where some users (e.g., user 2) may take longer to move the scanner device (e.g., oral device, such as taking longer to brush teeth) as compared to other users (e.g., user 1). This is represented in the example scan behavior diagrams 1060 and 1080 of
As shown for
In some aspects, multiple digital images, including one or more panoramic image view(s), may be used to track changes or evolution of the tooth contaminant over time. This can include tracking changes or evolution of tooth containment at one or more zone level(s) over time. For example, in some aspects, digital image stitching method or algorithm (e.g., the digital image stitching method 300 of
Additionally, or alternatively, user interface 1202 may be implemented or rendered via a web interface, such as via a web browser application, e.g., Safari and/or Google Chrome app(s), or other such web browser or the like.
In various aspects, a panoramic image view may be rendered via a graphic user interface (GUI) on a display screen (e.g., display screen 1200). As shown in the example of
In some aspects, a recommendation may be generated based on at least one of a panoramic image view, a plurality of images, and/or position data as determined as described herein. For example, the recommendation may provide guidance to the user for use of the scanning device or may comprise a product recommendation
As further shown for
In some aspects, a recommendation may generated based on the identification 1212. That is, digital image stitching method may further comprising generating a recommendation based on at least one of: the panoramic image view, the plurality of images, and/or the position data. In the example of
Still, in further aspects, the digital image stitching method may further comprise recommending a product based on the panoramic image view (e.g., panoramic image view 1100). For example, a product recommendation 12222 may correspond to the identification 1212 as detected within the panoramic image view 1100. In the example of
User interface 1202 may further include a selectable user interface (UI) button 1224s to allow the user (to select for purchase or shipment the corresponding product (e.g., manufactured product 1224r). In some aspects, selection of selectable UI button 1224s may cause the recommended product(s) to be shipped to the user and/or may notify a third party that the individual is interested in the product(s). For example, either user computing device 111c1 and/or imaging server(s) 102 may initiate, based on the indication 1212 or tooth contaminant, the manufactured product 1224r (e.g., toothpaste) for shipment to the user. In such aspects, the product may be packaged and shipped to the user.
In various aspects, the product recommendation 1222 is rendered on the display screen in real-time or near-real time, during, or after generating the panoramic image view (e.g., panoramic image view 1100). That is, a panoramic image view may be shown in real-time (live) or near-real time, on the GUI as illustrated for
In some aspects, a user may provide a new image. For example, as shown in the example of
The following aspects are provided as examples in accordance with the disclosure herein and are not intended to limit the scope of the disclosure.
1. A digital image stitching method for generating one or more panoramic image views, the digital image stitching method comprising: capturing, by a camera of a scanner device, a plurality of digital images depicting a target feature within an application area, the plurality of digital images comprising at least a first image and a second image; capturing, by a sensor coupled to the scanner device, motion data as the scanner device moves relative to the target feature; determining relative position data based on the motion data, the relative position data comprising at least first position data corresponding to the first image and second position data corresponding to the second image; generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image; and generating, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
2. The digital image stitching method of aspect 1, wherein generating the angle of the second image comprises: determining a tilt angle for the second image based on an angular velocity change from the first image to the second image; and rotating the second image by the tilt angle.
3. The digital image stitching method of any one of aspects 1-2, wherein generating the position of the second image comprises: determining a first image feature within the first image; determining a second image feature within the second image, the first image feature corresponding to the second image feature; determining a coordinate distance between the first image feature and the second image feature; and setting the position of the second image by offsetting the second image from the first image by the coordinate distance.
4. The digital image stitching method of any one of aspects 1-3 further comprising: automatically detecting the target feature within the application area causing the plurality of images to be captured.
5. The digital image stitching method of any one of aspects 1-4, wherein the plurality of digital images depict one or more of: one or more teeth, soft human tissue, or an artificial oral material.
6. The digital image stitching method of any one of aspects 1-5, wherein the camera comprises one or more of: an intraoral camera, a floor camera, a skin camera, an oral treatment device comprising a camera, a toothbrush comprising a camera, or a mouth piece comprising a camera.
7. The digital image stitching method of any one of aspects 1-6, wherein the sensor comprises one or more of: a gyroscope, an accelerator, a magnetic sensor, or an inertial measurement unit (IMU).
8. The digital image stitching method of any one of aspects 1-7, wherein the application area is one of an oral area, a skin area, or a floor area.
9. The digital image stitching method of any one of aspects 1-8, wherein the panoramic image view is generated following completion of one or more: (a) determining that positioning of the plurality of images in the application area equals or exceeds a maximum coordinate distance; or (b) determining that a threshold number of digital images of the plurality of images has been obtained.
10. The digital image stitching method of claim 9, wherein the application area is an oral area, and wherein the panoramic image view is generated following completion of determining that a minimum number of teeth have been scanned in the oral area.
11. The digital image stitching method of any one of aspects 1-10, wherein the application area is an oral area, and wherein the digital image stitching method further comprises: predicting zonal locations within the oral area based on one or more of: the panoramic image view; or the panoramic image view and the position data.
12. The digital image stitching method of any one of aspects 1-11, wherein the application area is an oral area comprising one or more zonal locations including at least a first zonal location and a second zonal location, and wherein the image matching of the second image with the first image is further based on a positive indication that each of the second image and the first image are within the first zonal location.
13. The digital image stitching method of any one of aspects 12, wherein the plurality of digital images as captured by the camera further comprise a third image, and wherein the digital image stitching method further comprises: determining that the third image depicts the second zonal location; and forgoing image matching of the third image with either of the second image or the first image based on the third image being in located the second zonal location, the second zonal location being different from the first zonal location.
14. The digital image stitching method of any one of aspects 1-13, wherein the application area is an oral area, and wherein the digital image stitching method further comprises: predicting a tooth position of one or more teeth depicted within the oral area based on one or more of: the panoramic image view; or the panoramic image view and the position data.
15. The digital image stitching method of any one of aspects 1-14, wherein the application area is an oral area, and wherein the digital image stitching method further comprises: identifying a user based on one or more unique oral features of the user depicted by the panoramic image view.
16. The digital image stitching method of any one of aspects 1-15, wherein the application area is an oral area, and wherein the digital image stitching method further comprises: identifying a user based on one or more unique scan behaviors of the position data.
17. The digital image stitching method of any one of aspects 1-16, wherein the application area is an oral area, and wherein the digital image stitching method further comprises: identifying an indication of a tooth contaminant on one or more teeth depicted within the panoramic image view.
18. The digital image stitching method of aspect 17 further comprising: generating a second panoramic image view at a second time; identifying a second indication of a tooth contaminant on one or more teeth depicted within the second panoramic image view; and determine a tooth contaminant evolution between the second indication of the tooth contaminant and the indication of the tooth contaminant.
19. The digital image stitching method of any one of aspects 1-18 further comprising rendering the panoramic image view on a graphic user interface (GUI).
20. The digital image stitching method of any one of aspects 1-19 further comprising generating a recommendation based on at least one of: the panoramic image view, the plurality of images, or the position data.
21. The digital image stitching method of any one of aspects 1-20 further comprising outputting a control signal based on at least one of: the panoramic image view, the plurality of images, or the position data, wherein the control signal controls an operation of at least the scanning device, the camera, or the sensor.
22. The digital image stitching method of any one of aspects 1-21 further comprising recommending a product based on the panoramic image view.
23. The digital image stitching method of any one of aspects 1-22, wherein the scanner device is a hand-held device or a clip-on device.
24. The digital image stitching method of any one of aspects 1-23 further comprising: determining one or more zonal locations within the application area; generating, based on the image matching of the second image with the first image based on the angle or the position of the second image, a distance moved in a horizontal direction and in a vertical direction, the distance moved defining a movement of the camera from a first position when the first image was captured to a second position when the second image was captured; generating, based on the distance moved in the horizontal direction and the vertical direction, a total distance defining a total movement; determining, based on the total movement, at least one of (i) a coverage amount occurring within at least one of the one or more zonal locations, or (ii) a trajectory value defining a trajectory within at least one of the one or more zonal locations; and generating an indication of whether a successful scan occurred based on at least one of the coverage amount or the trajectory value.
25. The digital image stitching method of aspect 1, wherein the plurality of images captured by the camera comprise a third image, and wherein the digital image stitching method further comprises: determining that the third image lacks a quality criterion; and discarding the third image from use in generating the panoramic image view.
26. The digital image stitching method of aspect 1, wherein the scanner device comprises a physical distancing element configured to maintain a constant distance between the camera and the target feature or the application area.
27. A digital image stitching system configured to generate one or more panoramic image views, the digital image stitching system comprising: a scanner device comprising a camera configured to capture digital images; a sensor coupled to the scanner device and configured to capture motion data; one or more processors communicatively coupled to the scanner device; and a computer readable medium storing computing instructions configured to execute on the one or more processors, wherein the computing instructions, when executed by the one or more processors, cause the one or more processors to: capture, by the camera, a plurality of digital images depicting a target feature within an application area, the plurality of digital images comprising at least a first image and a second image, capture, by the sensor, the motion data as the scanner device moves relative to the target feature; determine relative position data based on the motion data, the relative position data comprising at least first position data corresponding to the first image and second position data corresponding to the second image, generate, based on the relative position data, at least one of an angle or a position of the second image relative to the first image, and generate, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
28. A tangible, non-transitory computer-readable medium storing instructions for generating one or more panoramic image views, that when executed by one or more processors cause the one or more processors to: capture, by a camera of a scanner device, a plurality of digital images depicting a target feature within an application area, the plurality of digital images comprising at least a first image and a second image; capture, by a sensor coupled to the scanner device, motion data as the scanner device moves relative to the target feature; determine relative position data based on the motion data, the relative position data comprising at least first position data corresponding to the first image and second position data corresponding to the second image; generate, based on the relative position data, at least one of an angle or a position of the second image relative to the first image; and generate, based on image matching of the second image with the first image based on the angle or the position of the second image, a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
29. A digital image stitching method comprising: capturing, by a camera of a scanner device, a plurality of digital images depicting a target feature within an application area, the plurality of digital images comprising at least a first image and a second image; capturing, by a sensor coupled to the scanner device, motion data as the scanner device moves relative to the target feature; determining relative position data based on the motion data, the relative position data comprising at least first position data corresponding to the first image and second position data corresponding to the second image; generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image; and generating, based on image matching of the first image with the second image and one or more distances moved in respective horizontal and vertical directions, a total distance defining a total movement.
30. The digital image stitching method of aspect 29 further comprising generating a panoramic image view depicting the target feature in a wider field of view of the application area than either the first image or the second image.
31. A digital imaging method for determining a successful scan completion of a scan of a zone, the digital imaging method comprising: capturing, by a camera of a scanner device, a plurality of digital images depicting a target feature within an application area, the plurality of digital images comprising at least a first image and a second image; capturing, by a sensor coupled to the scanner device, motion data as the scanner device moves relative to the target feature; determining relative position data based on the motion data, the relative position data comprising at least first position data corresponding to the first image and second position data corresponding to the second image; generating, based on the relative position data, at least one of an angle or a position of the second image relative to the first image; generating, based on image matching of the second image with the first image based on the angle or the position of the second image, a distance moved in a horizontal direction or a distance moved in a vertical direction, the distance defining movement of the camera when capturing the first image and the second image; and determining a zone scan completion based on the distance moved in the horizontal direction or the distance moved in the vertical direction, the zone scan completion defining a total distance of a total movement of the scan with respect to at least one preset threshold value.
32. The digital imaging method of aspect 31 further comprising: determining the zone scan completion further based on a required amount of the plurality of images collected within the zone with respect to at least one preset threshold number defining the completion of one or more zones.
Although the disclosure herein sets forth a detailed description of numerous different aspects, it should be understood that the legal scope of the description is defined by the words of the claims set forth at the end of this patent and equivalents. The detailed description is to be construed as exemplary only and does not describe every possible aspect since describing every possible aspect would be impractical. Numerous alternative aspects may be implemented, using either current technology or technology developed after the filing date of this patent, which would still fall within the scope of the claims.
The following additional considerations apply to the foregoing discussion. Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
Additionally, certain aspects are described herein as including logic or a number of routines, subroutines, applications, or instructions. These may constitute either software (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware. In hardware, the routines, etc., are tangible units capable of performing certain operations and may be configured or arranged in a certain manner. In example aspects, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example aspects, comprise processor-implemented modules.
Similarly, the methods or routines described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented hardware modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example aspects, the processor or processors may be located in a single location, while in other aspects the processors may be distributed across a number of locations.
The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example aspects, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other aspects, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations.
This detailed description is to be construed as exemplary only and does not describe every possible aspect, as describing every possible aspect would be impractical, if not impossible. A person of ordinary skill in the art may implement numerous alternate aspects, using either current technology or technology developed after the filing date of this application.
Those of ordinary skill in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described aspects without departing from the scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the ambit of the inventive concept.
The patent claims at the end of this patent application are not intended to be construed under 35 U.S.C. § 112(f) unless traditional means-plus-function language is expressly recited, such as “means for” or “step for” language being explicitly recited in the claim(s). The systems and methods described herein are directed to an improvement to computer functionality, and improve the functioning of conventional computers.
The dimensions and values disclosed herein are not to be understood as being strictly limited to the exact numerical values recited. Instead, unless otherwise specified, each such dimension is intended to mean both the recited value and a functionally equivalent range surrounding that value. For example, a dimension disclosed as “40 mm” is intended to mean “about 40 mm.”
Every document cited herein, including any cross referenced or related patent or application and any patent application or patent to which this application claims priority or benefit thereof, is hereby incorporated herein by reference in its entirety unless expressly excluded or otherwise limited. The citation of any document is not an admission that it is prior art with respect to any invention disclosed or claimed herein or that it alone, or in any combination with any other reference or references, teaches, suggests or discloses any such invention. Further, to the extent that any meaning or definition of a term in this document conflicts with any meaning or definition of the same term in a document incorporated by reference, the meaning or definition assigned to that term in this document shall govern.
While particular aspects of the present invention have been illustrated and described, it would be obvious to those skilled in the art that various other changes and modifications can be made without departing from the spirit and scope of the invention. It is therefore intended to cover in the appended claims all such changes and modifications that are within the scope of this invention.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2022/082673 | Mar 2022 | WO | international |