SYSTEMS AND METHODS FOR CLASSING POLES

A pole classing system may include an array of three-dimensional (3D) scanners, programmable logic controller equipment, and a computing device. The computing device may control the array of the 3D scanners to generate images of a pole from different directions and positions, generate a first pole dataset comprising dimensions and features of the pole, determine a class for the pole based on the dimensions of the pole and a first set of pole standard parameters, generate a second pole dataset by selecting a partial first pole dataset, and transmit the second pole dataset to the programmable logic controller equipment. The programmable logic controller equipment may process, based on a second set of pole standard parameters, the second pole dataset, the images and the features of the pole to thereby optimize the determined class of the pole and generate an updated class of the pole.

FIELD OF THE DISCLOSURE

The present disclosure relates to efficiently and automatically classing poles based on standards in the lumber industry.

BACKGROUND

The existing systems of classifying poles and pilings are generally accomplished by unsafe manual methods. The methods are also time consuming and may be subject to misinterpretation of standards and errors resulting in the possible rejection of poles during the pole classifying process. For example, the existing methods and systems normally require operators to reach out to touch the poles in order to figure out the class of pole and/or any problems with a pole. There is a need for providing an efficient and automated system and method to provide accurate pole measurements based on industry standards while avoiding manual actions during the pole classifying process.

DETAILED DESCRIPTION

Embodiments of the present disclosure provide systems and method for efficiently and automatically classing poles based on industrial standards provided by the American National Standards Institute [ANSI]. As those of ordinary skill will appreciate, some embodiments may be extended to use with other standards.

In one or more embodiments, a pole classing system may include various hardware equipment including, but not limited to:1) a system for conveying poles or pilings along a group of decks and conveyors for the purpose of classing the pole or piling;2) specially designed conveyors for holding a chain steady;3) specially designed chain flights to ensure that pole rolling and slippage is reduced to a minimum;4) a vector motor used to ensure accurate measurements;5) a three-dimensional (3D) High Definition scanner system running proprietary software;6) programmable logic controller (PLC) equipment configured to control the pole movement and perform data collection of classing the pole;7) a computer system or software module for pole classing optimization;8) a swing style cut off saw or other cutting devices;9) a paint spraying system; and10) a label printer and stapler or other marking device.

FIG. 1Aillustrates a block diagram of an example pole classing system100for classing poles in accordance with the disclosed principles. The pole classing system100may include a conveyance system110, an array of 3D scanners120, a pole classing system100, a computing device130, programmable logic controller (PLC) equipment140, a pole marking system150, and a network (not shown). The network may include the Internet and/or other public or private networks or combinations thereof. Different systems and devices of the pole classing system100may communicate with each other via the network or, in some embodiments, by direct connection or other means.

The conveyance system110may be used for conveying poles along a group of decks and conveyors for scanning and classing the poles. As used herein, the term “poles” may include, but is not limited to, poles, pilings, and any other similar physical objects. The conveyance system110may include a group of infeed decks and conveyors. An infeed conveyor may be constructed of formed steel plate and may include a chain way to ensure the chain is held steady. For example, the infeed decks and conveyors may be powered by vector motors configured to reduce the need for pulse encoders and allow more accurate length measurements. A fabricated chain flight can be welded to the chain to reduce log roll and slippage. The conveyance system110may include a vector motor operating to ensure accurate measurements of the pole during measurement, as described in detail below. The conveyor may be controlled by the vector motor using the Common Industrial Protocol or Control and Information Protocol (CIP) motion for reducing the need for pulse encoders and allowing more accurate length measurements. The conveyance system110may include specially designed conveyors for holding the chain steady. The conveyance system110may include specially designed chain flights operating to control pole movement by reducing the pole rolling and slippage to a minimum.

An array of 3D scanners120may operate to digitally capture a physical shape of a pole and transmit the captured pole images to the computing device130through the network. An example array of 3D scanners120are shown inFIG. 1B. The scanner array ofFIG. 1Bis an example only, and other arrangements for the scanner array may be possible. The captured pole images may be stored in the database135. The 3D scanners120may be time of travel type of scanners (e.g., LiDAR-scanners) or triangulation-based scanners. For a LiDAR-scanner, the time of travel of the laser between its emission and reception provides the object surface's geometrical information. For a triangulation-based scanner, the emission of a rectilinear laser beam deforms on contact with the object. Through the camera, the 3D scanner analyzes the deformation of the line emitted by the laser on the reliefs of the object in order to determine, by means of trigonometric calculations, its position in space. The angle formed between the camera and the beam of the laser, the distance from the camera to the object and the distance of the laser source to the object used to calculate the time taken by the laser to make a round trip, are the parameters to determine the spatial coordinates of the object. As seen inFIG. 1B, scanners120may be able to identify pole features that may not necessarily be visible to the naked eye (e.g., indicated by the gradients overlaid on the pole). This is described in greater detail with respect toFIGS. 5-6Cbelow.

The computing device130(e.g., a computer) may include a processor131, a memory132, a display133and communication interface for enabling communication over a network (not shown). The memory132may store various software applications134or other models in the context of computer-executable instructions executed by the processor131for implementing methods, processes, systems and embodiments described in the present disclosure. The applications134may include an adaptive software application with image processing algorithms executed to control the scanners120and receive the images captured by the scanners120. The adaptive software application may further be executed to process the pole images to determine a pole dataset136and further generate pole models used for the pole classification. Database135may be included in the computing device130or coupled to or in communication with the processor131via the network. Database135may be configured to store the captured pole images, pole dataset136and generated 3D pole models.

In some embodiments, the pole classing system100may include an Anybus® X-gateway which provides a fast transfer of a partial pole dataset with seamless communications between the computing device130and the PLC equipment140through the network. Other embodiments may utilize other data communication systems and methods.

The PLC equipment140may include a processor (e.g., a PLC or other type of processor)141and a memory142storing a classing algorithm executed to class or classify the poles based on the selected pole dataset137, defects on the pole surface and wood pole standards provided by the ANSI. The classing result of the poles may be stored in the memory142or the database135.

The pole marking system150may include a swing style cut off saw or other cutting devices, a paint spraying system and a label printer and stapler. The pole marking system150may be operated to mark the classified poles with standard tags and marks based on the classing result. The paint spraying system may operate to print out the classing result of the poles. The label printer and stapler may automatically tag or mark the poles with the classing result.

ANSI 05.1-2017 Standard

ANSI 05.1-2017 standard (“ANSI standard”) provides minimum specifications for the quality and dimensions of wood poles for particular species. The pole classing processes may be implemented based on the dimensions of the wood poles and limits of knot (e.g., a type of defect) sizes listed in the ANSI 05.1-2017 standard. For example, Tables 2 and 8M of the ANSI 05.1-2017 standard show the limits of knot sizes and example dimensions of southern yellow pine.

Table 2—Limits of Knot Sizes (ANSI)

TABLE 2Limits of Knot SizesMaximum sizes permittedSum of diameters of all knots (and coneDiameter of any single knotholes, if applicable) greater than 0.5 inch(in) and (mm)(13 mm) in any 1-foot (0.31 m) sectionClassesClasses(in) and (mm)Length of PoleH6 to 34 to 10All Classes45 feet (13.7 m) and shorterLower half of length3 in (80 mm)2 in (50 mm)⅓ of the average circumferenceUpper half of length5 in (130 mm)4 in (100 mm)of the same 1-foot (0.31 m) sectionor 8 inches (.20 m), whichever isgreater, but not to exceed 12inches (0.31 m)1)50 feet (15.2 m) and longerLower half of length4 in (100 mm)4 in (100 mm)⅓ of the average circumferenceUpper half of length6 in (150 mm)6 in (150 mm)of the same 1-foot (0.31 m) sectionor 10 inches (0.25 m), whichever isgreater, but not to exceed 14inches (.36 m)1)NOTE -See clause 4 and Tables 3 through 10 (or Tables 3M through 10M) for pole classes.1)Both upper and lower halves

TABLE 8MDimensions of Douglas-fir and Southern Pine poles (ANSI)Table 8M - Metric dimensions of Douglas-fir (both types) and Southern pine poles (Fiber Strength 55.2 MPa)ApproximateClassGroundline1)H6H5H4H3H2H11234567910Lengthdistance fromMinimum circumference at top (m)of polebutt0.990.940.890.840.790.740.690.640.580.530.480.430.380.380.30(m)(m)Minimum circumference at 1.8 m from butt (m)6.11.2——————0.790.740.690.640.580.530.500.440.367.61.5——————0.850.800.750.700.650.580.550.500.389.11.7——————0.930.860.810.750.700.640.600.52—10.71.7————1.101.050.990.930.860.800.740.690.64——12.21.8——1.301.231.171.101.040.980.910.850.790.72———13.72.01.491.421.361.301.231.161.091.030.950.890.830.76———15.22.11.551.491.411.351.281.211.141.070.990.930.86————16.82.31.611.541.471.401.321.261.181.101.030.97—————18.32.41.661.591.511.451.371.301.221.141.070.99—————19.82.61.711.641.561.491.411.331.261.181.101.03—————21.32.71.751.691.611.541.451.371.301.221.141.05—————22.92.91.801.731.651.571.501.411.331.241.17——————24.43.11.841.771.691.611.521.451.371.281.19——————25.93.21.891.821.731.651.561.491.401.311.22——————27.43.41.931.851.771.691.601.511.421.351.24——————29.03.41.971.891.801.711.641.551.451.37———————30.53.42.011.931.841.751.661.571.491.40———————32.03.72.041.961.881.791.701.601.511.42———————33.53.72.081.991.911.821.731.641.541.45———————35.13.72.122.031.941.841.751.661.561.47———————36.63.72.162.061.971.881.781.691.591.50———————38.13.72.182.101.991.911.801.711.611.51———————NOTE -Classes and lengths for which circumferences at 1.8 m from the butt are listed in boldface type are the preferred standard sizes. Those shown in light type are included for engineering purposes only.1)The figures in this column are not recommended embedment depths; rather, these values are intended for use only when a definition of groundline is necessary in order to apply requirements relating to scars, straightness, etc.

The poles may be classified based on the pole dimensions including the pole length and pole circumference for particular species.

Pole Length

Based on the ANSI standard, poles less than 50 feet (15.2 m) in length shall be not more than 3 inches (80 mm) shorter or 6 inches (150 mm) longer than nominal length. Poles of 50 feet (15.2 m) or more in length shall be not more than 6 inches (150 mm) shorter or 12 inches (0.31 m) longer than nominal length. Length shall be measured between the extreme ends (the top and the bottom) of the pole.

Pole Circumference

Poles are classed while in the green condition, after bark removal and/or shaving. Subsequently, there may be some shrinkage due to conditioning, seasoning, or while in service. Therefore, this shrinkage, which is usually about 2 percent as the pole dries below fiber saturation, should be recognized if re-measuring circumference at a later date.

Table 8M in the ANSI standard lists the minimum circumferences at 6 feet (1.8 m) from the butt and at the top, for each length and class of pole. The circumference at 6 feet (1.8 m) from the butt of a pole shall be not more than 7 inches (0.18 m) or 20 percent larger than the specified minimum, whichever is greater. The top dimensional requirement shall apply at a point corresponding to the minimum length permitted for the pole.

Pole Classification

The true circumference class shall be determined as follows: Measure the circumference at 6 feet (1.8 m) from the butt. This dimension will determine the true class of the pole, provided that its top (measured at the minimum length point) is large enough. Otherwise, the circumference at the top will determine the true class, provided that the circumference at 6 feet (1.8 m) from the butt does not exceed the specified minimum by more than 7 inches (0.18 m) or 20 percent, whichever is greater.

Pole Classes

As listed in Table 8M in the ANSI standard, poles meeting the requirements of this standard are grouped in the identified classes, based on their circumference measured 6 feet (1.8 m) from the butt, after bark removal and/or shaving. Poles of a given class and length are designed to have approximately the same load-carrying capacity, regardless of species.

In some embodiments, the pole classing system100may preform two phases of pole classing processes.FIG. 2is a flowchart illustrating an example process200for determining a class for a pole based on dimensions and features of the pole in accordance with some embodiments disclosed herein.

At202which is indicative of a first part of Phase I process, the pole classing system100may obtain pole images and a first pole dataset136of a pole.

At204which is indicative of a second part of Phase I process, the pole classing system100may determine a class of the pole based on the dimensions of the pole obtained from the pole images and the pole dataset136. The Phase I process may not consider and analyze knots and surface defects in the pole. Defects or knots on the surface of the pole may impact the class of the pole. The pole classing system100may be implemented to facilitate a smooth and uncomplicated migration to the Phase II process.

At206which is indicative of Phase II process, the pole classing system100may detect one or more surface defects (e.g., knots) in the pole and analyze measurable features of the detected defects to optimize the determined class. The partial pole data collected by the scanners120during the Phrase I may be used to implement the Phase II process. During the Phase II process, these defects may be annunciated to the operator to confirm whether the defects affect the pole class decision.

FIG. 3is a flowchart illustrating a part of example Phase I process for obtaining pole images and determining pole data in accordance with some embodiments disclosed herein.

At203, an array of 3D scanners120are operated to capture and generate images of a pole. the scanner120may operate to scan a pole to capture the pole images from different directions and determine pole dataset136based on the pole images. The pole may be passed through an array of 3D scanners120which may be mounted at different directions and positions to capture and produce a full 360 view of the pole. For example, the 3D scanners120may be an array of LiDAR scanners mounted to the top right, top left, bottom right and bottom left of the pole such that the scanners120. The conveyor may move the pole through these scanners. Each scanner120may be controlled by the computing device130to execute an adaptive software application134such that each scanner120may provide laser scanning of the pole with an array of lasers from its own perspective to capture the pole images. The distances to certain positions of the pole may be calculated based on the pole images. The distance to scan the pole may be set to 4 mm or 6 mm via the 3D scanner application by a user or an operator operating the computing device130. The captured images of the pole may be used to generate sweep, and crook features as well as taper, circumference, the full length of the pole. This pole image data may be used to determine the pole circumference at the 3 or 6 feet point from the butt of the pole, or at any other desired location along the total length. The operator may see knots, splits, and tear outs.

At304, each scanner120may transmit the captured and generated pole images to the computing device130through the network. The scanners120may transmit and store the pole images in the database135. The pole images may be analyzed by an adaptive software application134to determine a first dataset136and build one or more 3D pole models for the pole.

At306, the processor131of the computing device130may execute an adaptive software application134to process the pole images to build digital 3D pole models. For example, the adaptive software application134may be Activision™ 3D model software executed to build one or more pole models. Users may configure one or more settings or parameters within the Activision™ 3D model software in order to view and/or manipulate the models in some embodiments.

At308, the adaptive software application134may be executed by the processor131to determine the pole dataset136(e.g., a first pole dataset136) based on the 3D pole models. The first pole dataset136may include the dimensions and features of the pole. The dimensions of the pole may include the full length of the pole, pole circumferences at any desired locations from the pole butt, and any other dimension data of the pole, etc. The circumference of the pole may be obtained at the 3 or 6 feet point from the butt of the pole, or at any other desired locations along the pole. The pole dataset136may include pole sweep and crook features, color, taper, and the excess data associated with the defects of the pole. The features of the pole comprise at least one of a type, a location and dimensions of a defect on the surface of the pole.

The adaptive software application134may generate a graphical representation to present the digital 3D pole models with the dimensions and or features of the pole on a display133of the computing device130. The 3D pole models may be presented and shown as different colors.FIGS. 6A-6Care screenshots of a UI600of the example pole classing system in accordance with some embodiments disclosed herein. As shown, UI600may show at least one representation of at least one pole602as a graphical element with classification604and dimensions606called out.

Returning toFIG. 3, at310, the adaptive software application134may be executed to select a partial first pole dataset136to generate a second pole dataset137for classing the pole. The second pole dataset137is selected to include dimensions of the pole which may be used for classing the pole in a Phase II process300as described below. The second pole dataset137may include the excess data such as the types of defects that are used to properly modify and optimize the class of the pole. The selected pole dataset137may be transmitted to the processor141of the PLC equipment140through the Anybus® X-gateway, for example.

The processor141of the PLC equipment140may execute a classing algorithm to process the second pole dataset137for classing the pole based on a set of pole ANSI standards. Details about classing the pole will be described with respect toFIG. 4below.

FIG. 4is a flowchart illustrating another part of an example Phase I process300for classing poles based on pole dimensions in accordance with some embodiments disclosed herein. The processor141of the PLC equipment140may execute a classing algorithm to further process the second pole dataset137for classing the pole based on a set of pole ANSI standards. During the Phase II, the PLC equipment140of the pole classing system100may include a processor141to execute a classing algorithm to process the second pole dataset137for classing the poles.

At402, the PLC equipment140may receive the second pole dataset137which includes at least the full pole length, the circumference at 6 feet point from the butt of the pole, the circumference of top of the pole, the bottom pole dimension, the head pole dimension, types of defects and locations and dimensions of the defects, etc.

In some embodiments, the classing algorithm may be executed to determine a class for the pole based at least the full pole length and the circumference at 6 feet point from the butt of the pole according to a first set of predetermined standard parameters illustrated in Table 3.

As shown in Table 3 of the ANSI standards, the first set of pole standard parameters comprises at least one of a set of predetermined standard lengths of a pole, a set of predetermined minimum circumferences at 6 feet from the pole butt associated with a respective predetermined pole length, and a predetermined minimum circumference at the top of the pole. For example, a first set of predetermined standard lengths of a pole may be 20, 25, 30, 40, 45 feet, etc. For each predetermined standard length of the pole, there are a set of predetermined minimum circumferences at 6 feet from the pole butt in Table 3. Each class is associated with a respective predetermined minimum circumference at 6 feet from the pole butt. For example, for a 30 feet length of the pole, the predetermined minimum circumferences at 6 feet point from the butt of the pole are 45.5 inches for Class 1 and 43 inches for Class 2, respectively.

At404, based on the obtained full pole length and the first set of predetermined standard parameters, the classing algorithm may be executed to determine a set of predetermined minimum circumferences at 6 feet point from the butt associated with the full pole length of the second pole dataset137.

At406, based on the full pole length and the circumference at 6 feet point from the butt of the second pole dataset137, the classing algorithm may be executed to determine a predetermined minimum circumference at 6 feet point from the butt which is closest to the circumference at 6 feet point from the butt of the second pole dataset137.

At408, a class of the pole may be determined to correspond to the predetermined minimum circumference at 6 feet point from the butt.

At410, if a class is determined for the pole, the classing algorithm may be executed to determine if the circumference of top of the pole meets a predetermined minimum circumference at the top of the pole corresponding to the determined class. For example, as illustrated in Table, for a 30 feet length of the pole, the predetermined minimum circumferences at 6 feet point from the pole butt are 45.5 inches for Class 1 which requires a predetermined minimum circumference at the top of the pole to be 27 inches.

Defects on the surface of the pole may impact the class of the pole. The classing algorithm may be executed by the processor141to detect and locate defects such as knots, splits, and tear outs on the pole surface based on the second pole dataset137and generated pole images and 3D models. The classing algorithm may be executed to localize the defects, determine the types of the detected defects and characteristics or parameters of the defects located on the surface of the pole.

FIG. 5is a flowchart illustrating an example Phase II process500for optimizing the pole class based on the determined pole class in the process400and detected defects in accordance with some embodiments disclosed herein.

At502, the classing algorithm may be executed to detect and localize a defect on the pole surface based on the generated pole images and 3D pole models. Detecting the defect may include determining a set of features of the defect including a type, location, depth and length of the defect. For example, a defect may be detected and extended into the pole surface at a location shown on the pole image. The classing algorithm may be executed to optimize the pole class based on the characteristics or features of the defect and a second set of standard parameters illustrated in Table 2. The second set of standard parameters includes a diameter (width, length), a depth of a defect or knot. The type of defects detected during the Phase II may be “Spike Knots” or surface scars based on whether a defect meets or exceeds some standard characteristics or features. An example defect may be detected to have two characteristics or features, including: (1) the depth of a defect extending into the interior of the pole beneath the surface of the pole (e.g., by one inch); and (2) the length of the defect running a predetermined length (e.g., six inches). As required by ANSI standards, the diameter of any single knot and the sum of knot diameters in any 1-foot (31 cm) section shall not exceed the limits of Table 2.

At504, in response to detecting a defect (e.g., a knot) with detected features of the defect, the classing algorithm may be executed to determine a surrounding area around the location of the detected defect in the pole image until the depth of the defect is less than a predefined depth value, for example, ⅛ inch.

At506, the classing algorithm may be executed to use the surrounding area as a location anchor on an intensity image of the defect to further inspect discoloration of the intensity image compared to the surrounding area of an original pole image. The features of the defect may be shown as different colors rather than intensity such that the pole may be classed and graded based on the color which indicates the class of the pole. For example, the defect may be displayed on an operator's screen giving the location and diameter of the defect. The defect may be shown as an area of contrasting color relative to the surrounding, non-defective portion of the pole. Example color-coded representations608are shown inFIG. 6C, for example.

Returning toFIG. 5, at508, the classing algorithm may be executed to combine the two images (e.g., the original pole image and the intensity image) to determine the total size of the defect and generate a Pass/Fail flag while displaying the images (height and intensity) with the defects highlighted. The defects may be localized by their y-dimension along the length of the pole, and by their location in the x-z plane at that y-location. Information may be presented to the operator in terms of degrees relative to the vertical axis. The pass/fail flag may be generated based on the ANSI specifications for the pole being scanned. If a defect cannot be removed and produce a usable pole, the pole may be flagged with a fail flag and rejected. Poles flagged for failing may be reexamined by an operator to determine whether they should be reentered (e.g., used as a pole per the specifications or for other purposes).

At510, the classing algorithm may be executed to generate a graphical representation of the defect on a display143of the PLC equipment140operated by an operator. The 3D pole models generated in the Phase I process may be used to show a visual representation of the defect in the Phase II process. The dimensions of the detected defect may be presented with the 3D pole models on the display143to indicate the diameter, length, width (at the widest point) and depth (e.g., at the deepest point) that the defect which extends beneath the surrounding surface of the pole. The location(s) of the detected defect(s) may be indicated on the pole image or model using a graphical indicator at the point on the pole image or model where the defect exists.

At512, the class of the pole may be reevaluated and updated based on the detected features of the defect with respect to the predetermine standard parameters of a pole class in Table 3. If an operator is not satisfied with the standards of the pole classification, the pole may be passed as a cull (unprocessed) from the group and be examined and processed on the yard.

These graphical representations of the defect with the location indicators may allow the operator to decide on the most effective and efficient means of handling the pole to allow for it to be properly processed, but with minimal disruption to production. For example, a detected defect may be cut out if it resides close enough to one end of the pole for this action to be efficiently completed. Once a certain classification may be determined for the pole, a pole may be cut to meet the predetermined standard parameters of the pole. The class of the pole may be updated based on the updated pole length due to the cutting according to the ANSI standards. In a position that a pole is cut, a set of related classing links may be generated and presented to the operator on the display143of the PLC equipment140. The operator may choose or confirm a certain class for the pole via the display143of the PLC equipment140such that a certain class may be determined for the pole.

The classified pole may be painted and marked through a pole marking system150. For example, the classified pole may automatically advance to a cutoff saw where a trim is made if required. The classified pole then advances to the correct length and the top may be trimmed. The class pole may further advance through a paint spraying system. A color may be painted around the base of the pole using the specifications in the ANSI 05.1-2017 Standard. A label printer may provide a weather resistant fully customizable tag or ticket which may be stapled by a stapler to the bottom using a heavy-duty printing and stapling system. The tag or ticket may be printed and stuck to the butt of the pole. In addition to or in replacement of the tag, customizable direct ink transfer and or thermal transfer can be applied to the base. All data information in the processes200,300and400may be stored in the database135for updating product inventory. The database135may be integrated into the company's inventory for providing real time pole information corresponding to the pole product availability.

The advantages of the disclosed principles include providing an efficient and automated system and method to provide accurate pole measurements based on industrial standards while avoiding manual actions during the pole classifying process.

FIG. 7is a block diagram of an example computing device700that may be utilized to execute embodiments to implement processes including various features and functional operations as described herein. For example, the computing device700may function as the computing device130, and the PLC equipment140, or a portion or combination thereof. The computing device700may be implemented on any electronic device to execute software applications derived from program instructions, and includes but not limited to personal computers, servers, smartphones, media players, electronic tablets, game consoles, email devices, etc. In some implementations, the computing device700may include one or more processors702, one or more input devices704, one or more display devices or output devices706, one or more communication interfaces708, and memory710. Each of these components may be coupled by bus712, or in the case of distributed computer systems, one or more of these components may be located remotely and accessed via a network.

Input devices704may be any known input devices technology, including but not limited to a keyboard (including a virtual keyboard), mouse, track ball, and touch-sensitive pad or display. To provide for interaction with a user, the features and functional operations described in the disclosed embodiments may be implemented on a computer having a display device706such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer. Display device706may be any known display technology, including but not limited to display devices using Liquid Crystal Display (LCD) or Light Emitting Diode (LED) technology.

Communication interfaces708may be configured to enable computing device700to communicate with other another computing or network device across a network, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. For example, communication interfaces708may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.

Memory710may be any computer-readable medium that participates in providing computer program instructions and data to processor(s)702for execution, including without limitation, non-transitory computer-readable storage media (e.g., optical disks, magnetic disks, flash drives, etc.), or volatile media (e.g., SDRAM, ROM, etc.). Memory710may include various instructions for implementing an operating system714(e.g., Mac OS®, Windows®, Linux). The operating system may be multi-user, multiprocessing, multitasking, multithreading, real-time, and the like. The operating system may perform basic tasks, including but not limited to: recognizing inputs from input devices704; sending output to display device706; keeping track of files and directories on memory710; controlling peripheral devices (e.g., disk drives, printers, etc.) which can be controlled directly or through an I/O controller; and managing traffic on bus712. Bus712may be any known internal or external bus technology, including but not limited to ISA, EISA, PCI, PCI Express, USB, Serial ATA or FireWire.

Network communications instructions716may establish and maintain network connections (e.g., software applications for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, telephony, etc.). Application(s) and program modules718may include software application(s) and different functional program modules which are executed by processor(s)702to implement the processes described herein and/or other processes. For example, the program modules and algorithms718may include the classing algorithm and other program components for accessing and implementing application methods and processes described herein. The program modules718may include but not limited to software programs, machine learning models, objects, components, data structures that are configured to perform tasks or implement the processes described herein. The processes described herein may also be implemented in operating system714.

The computer system may include user computing devices and application servers. A user computing device and server may generally be remote from each other and may typically interact through a network. The relationship of user computing devices and application server may arise by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

Communication between various network and computing devices1200of a computing system may be facilitated by one or more application programming interfaces (APIs). APIs of system may be proprietary and/or may be examples available to those of ordinary skill in the art such as Amazon® Web Services (AWS) APIs or the like. The API may be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. One or more features and functional operations described in the disclosed embodiments may be implemented using an API. An API may define one or more parameters that are passed between an application and other software instructions/code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation. A parameter may be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call.