Weighing crops using machine vision

Machine vision techniques allow for accurate and non-destructive crop weighing by analyzing digital images, addressing the impracticality of traditional methods and improving crop management efficiency.

WO2026090388A2PCT designated stage Publication Date: 2026-04-30AUTOMATED FRUIT SCOUTING INC +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
AUTOMATED FRUIT SCOUTING INC
Filing Date
2025-10-23
Publication Date
2026-04-30

AI Technical Summary

Technical Problem

Traditional methods for weighing crops, such as agave pinas, are impractical and result in significant waste due to the inability to determine weight until destructive harvesting, leading to uncertainty in crop production and disruption of secondary processes.

Method used

Utilizing machine vision techniques to estimate crop weight through digital image analysis, including segmentation, pixel dimension determination, and weight estimation using artificial intelligence models, with corrections for environmental factors and fiducial offsets.

Benefits of technology

Enables accurate and non-destructive weighing of crops, reducing waste and uncertainty in crop production, and facilitating timely decision-making for harvesting and resource management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025052221_30042026_PF_FP_ABST
    Figure US2025052221_30042026_PF_FP_ABST
Patent Text Reader

Abstract

A digital image of the crop is received, such as from a mobile device. The crop is identified in the image based on a first segmentation of the image. A pixel dimension of the crop is determined based on a second segmentation of the crop in the digital image. A reference pixel dimension of a reference feature in the digital image is determined. The reference feature may be a feature with a known dimension such as a fiducial, feature of the crop, etc. A measurement of the crop is determined based on the reference pixel dimension and the pixel dimension of the crop feature. A weight of the crop is estimated based on the measurement of the crop.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] WEIGHING CROPS USING MACHINE VISION

[0002] BACKGROUND

[0003] Technical Field

[0004] The present disclosure relates to computer vision, and more particularly, to weighing crops using machine vision.

[0005] BRIEF SUMMARY

[0006] The inventors have recognized that crops (i.e., plants) can be weighed using machine vision. A digital image of the crop is received, such as from a mobile device. The crop is identified in the image based on a first segmentation of the image. A pixel dimension of the crop is determined based on a second segmentation of the crop in the digital image. A reference pixel dimension of a reference feature in the digital image is determined. The reference feature may be a feature with a known dimension such as a fiducial, feature of the crop, etc. A measurement of the crop is determined based on the reference pixel dimension and the pixel dimension of the crop feature. A weight of the crop is estimated based on the measurement of the crop.

[0007] In some embodiments, the weight of the crop is estimated based on one or more features of the crop such as a size, age, appearance, a variety of the crop, etc.

[0008] In some embodiments, the weight of the crop is estimated based on one or more environmental factors such as a season, weather, region, soil conditions, etc.

[0009] In some embodiments, the weight of the crop is determined based on a corrected pixel dimension determined using an offset.

[0010] BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0011] Figure 1 shows an example environment in which a crop weight management system operates, in some embodiments.

[0012] Figure 2 is a logical flow diagram illustrating a process for estimating a weight of a crop using machine vision according to various embodiments described herein.

[0013] Figure 3 is a logical flow diagram illustrating a process for estimating a weight of an agave pina using machine vision according to some embodiments.

[0014] Figure 4 is a display diagram illustrating an example image received by a crop weight management system in some embodiments. Figure 5 is a display diagram illustrating an example of a first segmentation of a crop in a digital image in some embodiments.

[0015] Figure 6 is a display diagram illustrating a second segmentation of a crop and a notification of an estimated crop weight in some embodiments.

[0016] Figure 7 is a display diagram illustrating a second segmentation of a crop and a notification of an estimated crop weight in some embodiments.

[0017] Figure 8 illustrates an example processor-based device usable to implement embodiments described herein.

[0018] Figure 9 is a logical flow diagram illustrating a process for managing a subpopulation of plants based on an overall characteristic of the subpopulation in some embodiments.

[0019] Figure 10 is a logical flow diagram illustrating a process for managing plants in a field based on a total crop weight of the field in some embodiments.

[0020] Figure 11 is a logical flow diagram illustrating a process for causing plant populations to be harvested according to growth rates of the plant populations in some embodiments.

[0021] Figure 12A is a display diagram showing an interface of average agave pina weight for subpopulations of agave plants in a field in some embodiments.

[0022] Figure 12B is a display diagram showing an interface including a map of sub-populations of agave plants in a field in some embodiments.

[0023] Figure 13 A is a display diagram illustrating an interface including information for managing plant populations in some embodiments.

[0024] Figure 13B is a display diagram illustrating an interface including a map of plant subpopulations some embodiments.

[0025] Figure 14A is a display diagram illustrating an interface showing a harvesting plan overview based on field growth rates in some embodiments.

[0026] Figure 14B is a display diagram showing an interface of information for fields to be harvested in some embodiments.

[0027] Figure 14C is a display diagram illustrating an interface showing a harvesting route based on field growth rates in some embodiments.

[0028] Figure 14D is a display diagram illustrating an interface showing a harvesting plan based on field growth rates in some embodiments.

[0029] Figure 14E is a display diagram illustrating a map of harvesting routes according to a harvesting plan in some embodiments. Figure 15 is a display diagram illustrating an interface including a harvest optimization dashboard for a select field in some embodiments.

[0030] Figure 16A is a display diagram showing an interface including information for managing populations of plants in a region in some embodiments.

[0031] Figure 16B is a display diagram showing an interface including a regional map of fields in some embodiments.

[0032] DETAILED DESCRIPTION

[0033] Crops (i.e., plants) are commonly weighed, such as when they are being sold. But traditional techniques for weighing crops are often impractical. Many crops such as potatoes, various fruits, agave pinas, etc. cannot practically be weighed until they are destructively harvested. For example, an agave pina cannot be weighed until it is separated from an agave plant, killing the agave plant. If the harvested agave pina is an unsatisfactory weight, it cannot be reconstituted into an agave plant to continue growing. Rather, it is discarded or otherwise allocated for use in an application having different requirements. This causes significant waste, whereby crops cannot be used for their intended purpose, or at all.

[0034] Agave plants illustrate several disadvantages that arise with traditional techniques for weighing crops. Agave plants are large, often reaching seven feet tall and taking years to mature. Thus, cultivating an agave plant requires significant investment in terms of space, time, water, labor, etc. A part of an agave plant called the agave pina or the agave head is typically harvested from the agave plant. Large blade-like leaves (i.e., “blades”) of the agave grow from the pina at the center of the plant. The pina is harvested from the agave plant by cutting the blades away from the pina. The pina is then used to make Tequila or other products. Some such products are protected by various standards such as appellations. For a product to be legally labeled as Tequila, numerous requirements must be satisfied throughout the production process. For example, Tequila must originate from one of several designated geographic areas, use agave of the tequilana weber blue variety, etc. Furthermore, producers may have additional internal standards such as weight for pinas used in producing Tequila or other agave products. Thus, when a pina that does not meet weight requirements for an intended use is harvested, significant waste may be incurred.

[0035] In many instances, crops are sold before they are harvested. Accordingly, the weight of the sold crops is often unknown until after it has been harvested and weighed, such as using a scale. The difficulty of weighing crops leads to significant uncertainty as to how much of a crop will ultimately be produced. Significant excesses or shortfalls in crop production cannot be accurately determined until shortly before a crop is to be delivered. This may disrupt production of secondary products or other processes that rely on the crops.

[0036] Furthermore, the weight of an individual crop is often useful for determining ripeness, quality, or other important attributes of the crop. But because the weight of the individual crop cannot be practically ascertained, these other attributes may also be difficult to determine.

[0037] In response to the disadvantages of traditional techniques for weighing crops discussed above, the inventors have conceived of techniques for weighing crops using machine vision. Techniques disclosed herein are usable to weigh crops based on images of the crops, other information related to the crop, or any combination thereof.

[0038] In the following description, certain specific details are set forth in order to provide a thorough understanding of various disclosed implementations. However, one skilled in the relevant art will recognize that implementations may be practiced without one or more of these specific details, or with other methods, components, materials, etc. In other instances, well-known structures associated with computer systems, server computers, and / or communications networks have not been shown or described in detail to avoid unnecessarily obscuring descriptions of the implementations.

[0039] Unless the context requires otherwise, throughout the specification and claims that follow, the word “comprising” is synonymous with “including,” and is inclusive or open-ended (i.e., does not exclude additional, unrecited elements or method acts).

[0040] Reference throughout this specification to “one implementation” or “an implementation” means that a particular feature, structure or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrases “in one implementation” or “in an implementation” in various places throughout this specification are not necessarily all referring to the same implementation. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more implementations.

[0041] As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. It should also be noted that the term “or” is generally employed in its sense including “and / or” unless the context clearly dictates otherwise.

[0042] The headings and Abstract of the Disclosure provided herein are for convenience only and do not interpret the scope or meaning of the implementations. As used herein, the term “crop” may refer to: a plant; a fruit, vegetable, flower, or grain that grows on a plant or tree; or any other cultivated plant or product of a cultivated plant.

[0043] Figure 1 shows an example environment 100 in which a crop weight management system 114 may operate, according to various embodiments described herein. Environment 100 includes crop weight management system 114, user device 103, and crops 105a-105e. The environment 100 may be a location for growing crops such as an orchard, field, etc., a portion thereof, or any other location in which crops are grown. The user device 103 may be a computing device, telephone, smart phone, tablet, drone, or any other computing device which is able to obtain images regarding the crops 105a-105e and transmit those images to the crop weight management system 114. Although a single user device 103 is depicted in the environment 100, embodiments are not so limited. In some embodiments, multiple user devices are used in environment 100. Likewise, although a single crop weight management system 114 is depicted in the environment 100, embodiments are not so limited, and multiple crop weight management systems may be used in the environment 100.

[0044] Crop weight management system 114 is configured to determine crop weights based on one or more images of the crops. In some embodiments, crop weight management system 114 is configured to determine crop weights based on environmental factors such as location, weather, soil conditions, etc. In some embodiments, crop weight management system 114 is configured to determine crop weights based on various features of the crops such as color, age, etc.

[0045] In various embodiments, aspects of crop weight management system 114 operate on or include one or more computing devices, one or more servers, or any other combination of servers or computing devices. The crop weight management system 114 may communicate with user devices located on an orchard, orchard block, etc., such as user device 103. The crop weight management system 114 may be configured to receive user input related to the functions of the crop weight management system 114. The crop weight management system may include or be communicatively coupled to a display device that is configured to display one or more dashboards generated by crop weight management system 114. In some embodiments, at least a portion of the aspects of crop weight management system 114 is implemented using user device 103.

[0046] In various embodiments, crop weight management system 114 includes crop data 115, training module 116, inference module 118, compliance module 120, and application interface 122 as well as other data, engines, software applications, hardware, etc., which may be used to perform functions of crop weight management system 114. In various embodiments, crop weight management system 114 employs embodiments of processes 200 or 300 to perform operations described herein.

[0047] Crop data 115 includes data related to one or more crops, such as crops 105a-105e. Crop data 115 may include one or more of: one or more images of one or more crops; data regarding the historical growth of the crops; statistical data regarding the growth of the crops; data regarding the impact of environmental conditions, such as changes in the weather, soil types, the amount or type of fertilizer given to the crops, or other environmental conditions related to crop growth, regarding the growth of the crops; or any other data related to the crops.

[0048] In some embodiments, crop data 115 includes one or more weight thresholds associated with crops. In one non-limiting example, crop data 115 includes a weight threshold of 120 pounds for an agave pina. In some embodiments, crop data 115 includes indications of one or more actions to be taken based on whether a crop is determined to satisfy the weight threshold. Continuing the example above, crop data 115 includes indications that the agave pina is to be harvested when its estimated weight satisfies the weight threshold, and the agave pina is not to be harvested when its estimated weight does not satisfy the weight threshold. In various embodiments, the weight threshold is satisfied when the estimated weight is greater than or less than the weight threshold.

[0049] The crop data may be obtained via one or more of: user input from a user device, such as the user device 103 of Figure 1; user input received at crop weight management system 114; a data source, dataset, database, etc., which includes crop data and which may be compiled, managed, or otherwise controlled by a user of crop weight management system 114, a user of a user device, or another entity (a “third party” entity); or any other input, dataset, repository, etc., which may include crop data. In some embodiments, crop data 115 includes one or more sets of training data used to train one or more artificial intelligence models, such as for use by inference module 118.

[0050] Training module 116 is configured to train one or more artificial intelligence models to determine a weight of a crop based on a digital image of the crop. In some embodiments, the one or more artificial intelligence models are trained using training data of crop data 115 that includes digital images of crops with associated crop weights. In some embodiments, the one or more artificial intelligence models are trained using training data that includes measurements of one or more dimensions of crops with associated crop weights.

[0051] In various embodiments, training module 116 is used to train one or more of: a first artificial intelligence model for segmenting a crop from a digital image, a second artificial intelligence model for segmenting a feature of the crop, a third artificial intelligence model for determining a pixel dimension of the feature of the crop, and a fourth artificial intelligence model for determining a weight of the crop based on the dimension of the feature of the crop. In various embodiments, training module 116 trains the artificial intelligence models using supervised learning, unsupervised learning, or any combination thereof.

[0052] Inference module 118 is configured to determine a crop weight based on input including an image of the crop. In some embodiments, inference module 118 determines the crop weight based on input that includes the crop image and additional crop data such as from crop data 115. In various embodiments, inference module 118 receives the input from user device 103, from crop data 115, or any combination thereof. In some embodiments, input received from user device 103 to be used by inference module 118, the crop weight determined therefrom, or both, is added to crop data 115.

[0053] In some embodiments, inference module 118 performs one or more pre-processing techniques on the crop image before determining the crop weight. In one non-limiting example, inference module 118 performs a first segmentation of the crop image to identify the crop in the image, performs a second segmentation of the crop to identify a feature of the crop in the image, obtains a pixel dimension of the crop feature, and determines a crop measurement based on the pixel dimension of the crop feature. In some embodiments, inference module 118 estimates the weight of the crop by applying one or more artificial intelligence models to the crop measurement.

[0054] Compliance module 120 is configured to compare estimated crop weights, such as estimated crop weights determined using inference module 118, to one or more weight thresholds. In some embodiments, compliance module 120 is configured to provide an indication of an action to be taken with respect to the crop based on the comparison. In one non-limiting example, compliance module 120 indicates that a crop is to be harvested when it exceeds a threshold weight, such as by causing user device 103 to display a notification instructing a user to harvest the crop.

[0055] Application interface 122 is configured to facilitate communication between crop weight management system 114 and computing devices such as user device 103.

[0056] In various embodiments, the crop weight management system 114 receives data regarding the crops 105a-105e from user device 103. In some embodiments, the crop weight management system 114 additionally receives data regarding environmental conditions of the crop, such as soil information, location, weather, luminance, season, via user input, a database, a search, or any combination thereof. In some embodiments, a user employs user device 103 to obtain data regarding the crops 105a-105e, such as by obtaining images of one or more of the crops 105a-105e as described herein. In various embodiments, user device 103 and crop weight management system 114 may transmit or receive data to or from each other via a wireless connection, a wired connection, the Internet or other computer networks, or via any other method of transmitting data to or from computing devices.

[0057] While crop weight management system 114 is depicted in Fig. 1 as including training module 116, inference module 118, compliance module 120, and application interface 122 implemented using server 112, the disclosure is not so limited. In various embodiments, one or more of these modules are implemented using user device 103 or another computing device. In one non-limiting example, user device 103 implements inference module 118, such that a crop weight is determined using user device 103. In some embodiments, the crop weight is sent to server 112, which implements compliance module 120. Accordingly, in various embodiments user device 103 determines crop weights from digital images of crops without necessarily communicating with server 112. In some such embodiments, user device 103 provides determined crop weights to server 112 after establishing communication with server 112.

[0058] Figure 2 is a logical flow diagram illustrating a process 200 for estimating a weight of a crop using machine vision in some embodiments. In various embodiments, process 200 is performed using a crop weight management system such as crop weight management system 114 of Fig. 1.

[0059] Process 200 begins, after a start block, at block 202, where one or more digital images of a crop are obtained. The one or more digital images may include one or more of: images received via a camera connected to, or operated by, user device 103 of Fig. 1, such as via a wired or wireless connection; images which are accessible to the user device, such as images stored locally, on cloud storage, or are otherwise accessible to a user device; or images which are received by the user device from another device.

[0060] In some embodiments, the one or more digital images of the crop include only one instance of the crop. In one non-limiting example, the digital image of the crop includes one agave plant. In some embodiments, the one or more digital images of the crop include multiple instances of the crop.

[0061] In some embodiments, the one or more digital images are received from one or more user devices, such as user device 103 of Fig. 1. In some embodiments, at least one image of the one or more images includes a reference feature usable to determine the size of at least one aspect of the one at least one crop, such as fiducial 401 of Fig. 4. In some embodiments, the crop weight management system uses the one or more images to generate at least a portion of the crop data used by the crop weight management system, such as crop data 115 described above in connection with Figure 1. The one or more digital images are further described below with respect to Fig. 4.

[0062] Figure 4 is a display diagram illustrating an example image 400 received by a crop weight management system in some embodiments. Example image 400 includes fiducial 401, fiducial holder 403, crop 402, and background features 404. In some embodiments, example image 400 is obtained using user device 103 of Fig. 1. In some embodiments, a user of user device 103 manipulates fiducial holder 403 to hold fiducial 401 near crop 402. In some embodiments, fiducial holder 403 is installed near crop 402, and may include a stake, post, etc. In some embodiments, fiducial 401 is removably or permanently coupled to crop 402. In one non-limiting example, fiducial 401 is pinned, nailed, tacked, etc. to crop 402. In some embodiments, fiducial 401 is painted, inscribed, branded, etc. directly to crop 402. In one nonlimiting example, the crop is a tree and fiducial 401 is branded into the bark of the tree.

[0063] While Fig. 4 depicts crop 402 as an agave plant, the disclosure is not so limited. In various embodiments, the one or more images depict any kind of crop.

[0064] Returning to Figure 2, after the one or more digital images are received at block 202, process 200 continues to block 204. At block 204, the crop is identified in the one or more digital images based on a first segmentation of the digital image as described below with respect to Fig.

[0065] 5. In some embodiments, the first segmentation is performed using inference module 118 of Fig.

[0066] 1.

[0067] Figure 5 is a display diagram illustrating an example digital image 500 showing a first segmentation of crop 402 in some embodiments.

[0068] As shown in Figure 5, digital image 500 includes crop 402 and background features 404 such as agave plant pups, other plants, or any other feature besides crop 402. Segmentation of the image is performed to distinguish crop 402 from background features 404, such that an accurate pixel dimension of crop 402 is determined. As shown in Fig. 4, background features 404 include dashed outlines, indicating they have been masked out of digital image 500 according to the first segmentation.

[0069] In some embodiments, segmentation is performed using thresholding, clustering, histograms, edge detection, etc. In some embodiments, segmentation is performed using an artificial intelligence model trained to perform the segmentation, such as convolutional neural network trained to segment images.

[0070] In one or more non-limiting examples, segmentation techniques can be employed by utilizing methods that allow for the adjustment of filter resolution and field-of-view to handle multi-scale contexts within images. One approach is the use of atrous convolution, a method designed to extract dense feature maps without reducing the spatial resolution of the image. This technique involves expanding convolutional filters by inserting gaps between filter weights, such as based on a rate parameter, enabling the capture of contextual information associated with more distantly spaced pixels without increasing computational costs. Atrous convolution can be applied in various configurations, such as in cascade or parallel, to efficiently capture both local and global image features.

[0071] Additionally, atrous spatial pyramid pooling (ASPP) can be used to probe features at multiple scales, further enhancing the ability to segment objects of varying sizes within an image. This method involves using convolution layers with different rates, capturing information from different receptive fields. By augmenting these layers with global context features, the segmentation process becomes more robust, improving accuracy without requiring extra parameters or post-processing. These methods, when applied in combination, allow for effective segmentation across varying object sizes and image complexities.

[0072] In some embodiments, the first segmentation is performed by applying to the one or more digital images one or more object recognition algorithms, such as a region-based convolutional network, region-based convolutional network, or any other supervised or unsupervised image processing, deep learning, or other object detection or object recognition techniques. In one nonlimiting example, the crop weight management system uses one or more semantic segmentation techniques to identify the crop in the one or more digital images.

[0073] In some embodiments, the first segmentation is used to create a segmentation mask for the digital image, which is applied to the digital image. In one non-limiting example, the segmentation mask includes a value of 1 for pixels that belong to the crop, and includes a value of 0 for pixels that are not included in the crop. In some embodiments, the segmentation mask is applied to the digital image by computing a Hadamard product (i.e., element-wise product) of the segmentation mask and the digital image.

[0074] In some embodiments, an indication of the first segmentation is displayed to the user, such as by user device 103, for the user to confirm that the first segmentation has correctly identified the crop in the image. In some embodiments wherein the user determines that the first segmentation has failed to identify the crop in the image, the user is prompted to provide feedback indicating an extent of the crop, such as by manually correcting the segmentation. In some embodiments, the user manually corrects the segmentation by indicating pixels of the segmented image that were incorrectly segmented, such as by using a touchscreen of user device 103 of Fig. 1. In some embodiments, in response to receiving user input indicating that the image was incorrectly segmented, user device 103 is caused to cease display of the segmented image and to display the original digital image. The user then provides input indicating pixels that include the crop. The first segmentation is then performed again based on the user input. In some embodiments, in response to the first segmentation being repeated a threshold number of times, such as 1-5 times, process 200 restarts at block 202, where another digital image of the crop is obtained.

[0075] Returning to Fig. 2, after the crop is identified in the digital image based on the first segmentation of the digital image at block 204, process 200 continues to block 206. At block 206, a pixel dimension of the crop is determined based on a second segmentation of the identified crop in the digital image. In various embodiments, block 206 employs techniques similar to those described with respect to block 204 to perform the second segmentation. In some embodiments, the second segmentation is performed using inference module 118 of Fig. 1.

[0076] In various embodiments, the pixel dimension corresponds to a feature of the crop such as a trunk; a bloom; a fruit; a bud; a fruitlet; etc. The pixel dimension is not necessarily limited to the feature of the crop for which a weight is to be estimated, such as a fruit. In various embodiments, a pixel dimension of a crown of the crop or any other feature of the crop is used to estimate the weight of the crop. In one non-limiting example, a pixel dimension of a crown of a potato plant is determined for use in estimating a weight of potatoes of the potato plant. In another example, a pixel dimension of a crown or trunk of an apple tree is determined for use in estimating a total weight of apples on the apple tree. Block 206 is further described below with respect to Figure 6.

[0077] Figure 6 is a display diagram illustrating an example digital image 600 of a second segmentation of a feature of an identified crop in a digital image in some embodiments. In some embodiments, digital image 600 is presented to a user via user device 103 of Fig. 1.

[0078] Digital image 600 includes overlay 601, which indicates one or more pixel dimensions of a feature of crop 402. Overlay 601 includes bounding box 604, which bounds the crop feature and includes line 602, which indicates a width of bounding box 604. In the example shown in Figure 6, bounding box 604 indicates an extent of a pina of crop 402. In various embodiments, the second segmentation is used to determine any number of pixel dimensions of the crop. In some embodiments, the second segmentation is used to obtain multiple pixel dimensions, such as pixel width and a pixel height of bounding box 604.

[0079] In some embodiments, multiple pixel dimensions measurements of the crop feature are obtained and used to identify one or more geometric properties of the trunk, such as an area, length, width, circumference, diameter, volume, or other geometric property.

[0080] While Fig. 6 depicts overlay 601 as it may be displayed to a user, such as via user device 103 of Fig. 1, in various embodiments, the second segmentation is used to determine the one or more pixel dimensions associated with overlay 601 without necessarily displaying overlay 601. In one non-limiting example, line 602 has a length of 50 pixels. Accordingly, the pixel dimension of the crop is 50 in this example.

[0081] Returning to Fig. 2, after the pixel dimension of the crop is determined based on a second segmentation of the identified crop in the digital image at block 206, process 200 continues to block 208.

[0082] At block 208, a reference pixel dimension of a reference feature in the digital image is determined. Referring again to Fig. 6, fiducial 401 is the reference feature, and its width in pixels in the digital image 600 is the reference pixel dimension. In various embodiments, block 208 is implemented using inference module 118 of Fig. 1.

[0083] In various embodiments, the reference feature is any feature having a known dimension. In some embodiments, such as the example shown in Fig. 6, the reference feature is a fiducial, such as an ARToolKit, ARTag, AprilTag, ArUco, QR Code, or Framedge fiducial. In some embodiments, the reference feature is a feature of the crop having a known dimension such as a leaf, stem, fruit, etc. of the crop.

[0084] In some embodiments, the reference feature is an environmental feature such as a trellis, support, structure, natural feature, feature of a person, etc. In one non-limiting example, a dimension of a trellis supporting the crop is the reference feature having a known dimension. In another non-limiting example, a user’s foot or hand is the reference feature having a known dimension.

[0085] In various embodiments, multiple reference pixel dimensions are determined using the reference feature. In one non-limiting example, pixel dimensions corresponding to a height and a width of the reference feature are determined. After block 208, process 200 continues to block 210. At block 210, a measurement of the crop is determined based on the pixel dimension of the crop and the reference pixel dimension. In some embodiments, the measurement of the crop is determined by computing a number of pixels per measurement unit based on the reference pixel dimension. In one non-limiting example, the reference pixel dimension is 20, which corresponds to a known measurement of the reference feature of 2 inches. Thus, each 10 pixels in the digital image corresponds to a measurement of 1 inch. The number of pixels per measurement unit is then applied to the pixel dimension of the crop to determine the measurement of the crop. Continuing the example and assuming the pixel dimension of the crop is 50, the measurement of the crop is 5 inches. In various embodiments, any measurement unit, including millimeters, centimeters, inches, etc. is used. After block 210, process 200 continues to block 212.

[0086] At block 212, a weight of the crop is estimated based on the measurement of the crop. In various embodiments, block 212 is performed using inference module 118 of Fig. 1. In some embodiments, the weight of the crop is estimated based on statistical analysis, an artificial intelligence model trained to output the estimation of the weight, or any other method of predicting the weight based on crop data. For example, the statistical analysis may include comparing historical data regarding crop measurements and corresponding weights. In another example, an artificial intelligence model such as a feed-forward neural network is trained based on historical data measurement and weight data for similar crops to predict the weight.

[0087] In some embodiments, the weight of the crop is estimated based on a function that approximates a relationship between measurements of the crop and corresponding weights of the crop. In some embodiments, the relationship includes a fitting function that approximates relationship between measurements of the crop and corresponding weights of the crop.

[0088] In various embodiments, the fitting function is based on a linear function, a multivariate interpolation, a spline, etc. determined based on known crop measurement-weight pairs.

[0089] In various embodiments, the weight of the crop is determined using a trained artificial intelligence model such as a feed-forward neural network, k-nearest neighbor, support vector machine, naive bayes classifier, etc.

[0090] In some embodiments, the trained artificial intelligence model is trained using training data that includes crop measurements and corresponding weights. In some embodiments, the trained artificial intelligence model is trained using training module 116 of Fig. 1. In some embodiments, the training data includes data similar to that discussed with respect to crop data 115 of Figure 1. In one non-limiting example, the training data includes crop measurements and a variety of the crop, labeled with the weight. After block 212, process 200 continues to block 214.

[0091] At block 214, an action to be taken is indicated based on the estimated weight of crop. In various embodiments, block 214 is performed using compliance module 120 of Fig. 1. In some embodiments, the action to be taken is determined based on a comparison of the crop weight to a crop weight thresholds. In one nonlimiting example, when the weight of the crop is below a crop weight threshold, the action to be taken is to leave the crop unharvested. When the weight of the crop is equal to or above the crop weight threshold, the action to be taken is to harvest the crop. In various embodiments, the action to be taken includes: allowing the crop to grow without any intervention; pruning one or more aspects of the crop; thinning one or more aspects of the crop; altering a soil composition of the soil within which the crop grows; altering the amount of water that the crop receives; or any other actions that may affect growth of the crop. The crop weight management system may generate the action based on historical data, statistical analysis, an artificial intelligence or machine learning model trained to generate a recommended action based on the weight, or other methods of determining a recommended action to meet a weight target for the crop. In some embodiments, the action to be taken includes instructions for a user of a user device to take action. In some embodiments, the user device is caused to display the action to be taken to a user of the user device.

[0092] Referring to Fig. 6, the crop weight management system indicates the action to be taken using notification 610 displayed using user device 103 of Fig. 1. As shown in Fig. 6, notification 610 indicates the target crop being measured, the estimated weight of the crop, and an action to be taken based on the estimated weight of the crop. In various embodiments, notification 610 is provided via audio or any other output of user device 103. In some embodiments, information associated with the notification is uploaded to server 112 of Fig. 1 or any other computing device and may be stored in crop data 115.

[0093] Returning to Fig. 2, after the action to be taken is indicated based on the estimated weight of the crop at block 214, process 200 ends at an end block. In some embodiments, the user device instructs a user of the user device to provide an image of another crop. In one nonlimiting example, in response to estimating the weight of the crop, the user device is caused to indicate that a digital image of a second crop should be obtained.

[0094] Figure 3 is a logical flow diagram illustrating a process 300 for estimating a weight of an agave pina in some embodiments. In various embodiments, process 300 is performed using a crop weight management system such as crop weight management system 114 of Fig. 1. Process 300 begins, after a start block, at block 302, where a digital image of an agave plant is obtained. In various embodiments, block 302 employs embodiments of block 202 of Fig.

[0095] 2 to obtain the digital image of the agave plant. After block 302, process 300 continues to block 304.

[0096] At block 304, the agave plant is identified in the digital image based on a first segmentation of the digital image. In various embodiments, block 304 employs embodiments of block 204 of Fig. 2 to identify the agave plant in the digital image. After block 304, process 300 continues to block 306.

[0097] At block 306, a pixel dimension of a pina of the agave plant is determined based on a second segmentation of the identified agave plant in the digital image. In various embodiments, block 306 employs embodiments of block 206 of Fig. 2 to determine the pixel dimension of the agave pina in the digital image. After block 306, process 300 continues to block 308.

[0098] At block 308, a reference pixel dimension of a reference feature in the digital image is determined. In various embodiments, block 308 employs embodiments of block 208 of Fig. 2 to determine the reference pixel dimension. After block 308, process 300 continues to block 310.

[0099] At block 310, an offset of the reference feature from the pina is determined. As can be seen in Figs. 4-6, fiducial 401 cannot be placed directly next to the pina of crop 402 because the blades of crop 402 physically block fiducial 401. Thus, fiducial 401 is often closer to the camera than crop 402. In this example, the offset between the fiducial and the crop causes the reference pixel dimension to be greater than if fiducial 401 were placed at a same distance from the camera as the agave pina, as illustrated in Fig.7. In some examples, the fiducial is behind the crop from the point of view of the camera, and the reference pixel dimension is smaller than if fiducial 401 were placed at the same distance from the camera as the crop. When the reference pixel dimension is too large or too small relative to the crop pixel dimension, the measurement of the crop based on these pixel dimensions will be inaccurate. In various embodiments, to correct for discrepancies in the reference pixel dimension, the offset is determined.

[0100] In various embodiments, the offset is determined by determining an average distance between the fiducial and the crop. In some embodiments, the average distance is determined based on a minimum average distance that can be achieved between fiducial 401 and crop 402. In one non-limiting example, it may be determined that blades of the agave plant or the agave pina itself prevent the fiducial from being placed closer than 7 cm on average from the center of the agave pina. Thus, the offset in this example is 7 cm. In some embodiments, the average distance is determined based on a difference between an estimated weight of the crop and a measured weight of the crop. For example, when a relationship is known between a measurement of the crop and its weight, a discrepancy between the estimated weight and the measured weight can be attributed to a difference between the measurement of the crop based on the estimated measurement of the crop and a measurement of the crop corresponding to the weight of the crop. Thus, in various embodiments, the offset is a factor applied to a reference pixel dimension, a crop pixel dimension, a crop measurement, etc. to account for differences between estimated weights and measured weights.

[0101] While the offset in various embodiments corresponds to a physical distance between fiducial 401 and the crop, pixel dimensions in the digital image, or an estimated measurement of the crop, the disclosure is not so limited. In some embodiments, the offset is a scaling factor to be applied to an estimated weight of the crop that does not necessarily correspond with a physical distance. In some embodiments, the offset is determined based on comparing weights estimated for crops using the reference pixel dimension to measured weights of the crops. In one non-limiting example, the offset includes a relationship to apply to the estimated weights of the crops to match the measured weights of the crop. When measured crop weights are 20% higher than estimated crop weights on average, for example, the offset may be a factor of 1.20 to be applied to the estimated crop weight.

[0102] In some embodiments, the offset is calculated based on data associated with a user device used to obtain the digital image of the crop, a location of the crop, etc. For example, users placing the fiducials often have differing habits of placing the fiducials. A first user may on average place the fiducial 5 centimeters away from the agave plant while obtaining the image, while a second user may on average place the fiducial 10 centimeters away from the agave plant while obtaining the image. Thus, in some embodiments, the offset is calculated on a per-user device basis, such that it accounts for tendencies of one or more users associated with the user devices. In one non-limiting example, measured crop weights are 10% higher on average than crop weights estimated based on the images taken using a selected user device. Thus, the offset may be a factor of 1.10 applied to weights estimated using the selected user device. In various embodiments, the offset is computed for groups of user devices, agricultural areas, types of crops, etc. After block 310, process 300 continues to block 312.

[0103] At block 312, a corrected pixel dimension of the reference feature in the digital image is determined based on the reference pixel dimension and the offset. As discussed with respect to block 310, in various embodiments, the corrected pixel dimension is determined based on applying the offset, which includes a scaling factor or other relationship, to the reference pixel dimension. After block 312, process 300 continues to block 314.

[0104] At block 314, a measurement of the pina is determined based on the corrected pixel dimension. In various embodiments, block 314 employs embodiments of block 210 of Fig. 2 to determine the measurement of the pina based on the corrected pixel dimension. In some embodiments, the measurement is a diameter, radius, length, area, volume, etc. of the pina. After block 314, process 300 continues to block 316.

[0105] At block 316, one or more characteristics of the agave plant are obtained. In various embodiments, the one or more characteristics of the agave plant include one or more elements of crop data 115 of Fig. 1, such as a location of the pina, an age of the pina, growing conditions of the pina, etc. After block 316, process 300 continues to block 318.

[0106] At block 318, a weight of the pina is estimated based on the one or more agave plant characteristics and the measurement of the pina. In various embodiments, block 318 employs embodiments of block 212 of Fig. 2 to estimate the weight of the pina. In some embodiments, the one or more agave plant characteristics and the measurement of the pina are provided as input to inference module 118 of Fig. 1, where a trained artificial intelligence model is used to estimate the weight of the pina based on the input. After block 318, process 300 continues to block 320.

[0107] At block 320, an action to be taken is indicated based on the estimated weight of the pina. In various embodiments, block 320 employs embodiments of block 220 of Fig. 2 to indicate the action to be taken. After block 320, process 300 ends at an end block.

[0108] While process 300 is discussed in terms of estimating a weight of an agave pina, the disclosure is not so limited. In various embodiments, embodiments of process 300 are used to estimate a weight of any crop, as discussed with respect to Fig. 7.

[0109] Figure 7 illustrates a display diagram depicting an example image 700 of an apple after a weight management system has processed the image in some embodiments. As shown in Fig. 7, the crop weight management system has produced example image 700 by processing an image of the apple 701 to produce overlay 702 and notification 710. As depicted in Fig. 7, the crop weight management system has determined that apple 701 does not satisfy a weight requirement to be harvested. Accordingly, notification 710 indicates that apple 701 should not be harvested.

[0110] Because fiducial 401 is placed in a different orientation relative to apple 701 than crop 402 in Figs. 4-6, in various embodiments, separate offsets are used to determine a weight of apple 701 and a weight of crop 402. Figure 8 shows a processor-based device 804 suitable for implementing the various functionality described herein. At least a portion of the operations, functionality, processes, and data described above in connection with the crop weight management system may be used, stored, executed, etc., by the processor-based device 804. Although not required, some portion of the implementations will be described in the general context of processor-executable instructions or logic, such as program application modules, objects, or macros being executed by one or more processors. Those skilled in the relevant art will appreciate that the described implementations, as well as other implementations, can be practiced with various processorbased system configurations, including handheld devices, such as smartphones and tablet computers, wearable devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, personal computers (“PCs”), network PCs, minicomputers, mainframe computers, and the like.

[0111] The processor-based device 804 may include one or more processors 806, a system memory 808 and a system bus 810 that couples various system components including the system memory 808 to the processor(s) 806. The processor-based device 804 will at times be referred to in the singular herein, but this is not intended to limit the implementations to a single system, since in certain implementations, there will be more than one system or other networked computing device involved. Non-limiting examples of commercially available systems include, but are not limited to, ARM processors from a variety of manufactures, Core microprocessors from Intel Corporation, U.S.A., PowerPC microprocessor from IBM, Sparc microprocessors from Sun Microsystems, Inc., PA-RISC series microprocessors from Hewlett-Packard Company, 68xxx series microprocessors from Motorola Corporation.

[0112] The processor(s) 806 may be any logic processing unit, such as one or more central processing units (CPUs), microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), etc.

[0113] In various embodiments, system bus 810 employs any known bus structures or architectures, including a memory bus with memory controller, a peripheral bus, and a local bus. The system memory 808 includes read-only memory (“ROM”) 812 and random-access memory (“RAM”) 814. A basic input / output system (“BIOS”) 816, which can form part of the ROM 812, contains basic routines that help transfer information between elements within processorbased device 804, such as during start-up. Some implementations may employ separate buses for data, instructions and power. The processor-based device 804 may also include one or more solid state memories, for instance Flash memory or solid-state drive (not shown), which provides nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the processor-based device 804. Although not depicted, the processor-based device 804 can employ other non-transitory computer- or processor-readable media, for example a hard disk drive, an optical disk drive, or memory card media drive.

[0114] Program modules can be stored in the system memory 808, such as an operating system 830, one or more application programs 832, other programs or modules 834, drivers 836 and program data 838.

[0115] The application programs 832 may, for example, include panning / scrolling 832a. Such panning / scrolling logic may include, but is not limited to, logic that determines when and / or where a pointer (e.g., finger, stylus, cursor) enters a user interface element that includes a region having a central portion and at least one margin. Such panning / scrolling logic may include, but is not limited to, logic that determines a direction and a rate at which at least one element of the user interface element should appear to move, and causes updating of a display to cause the at least one element to appear to move in the determined direction at the determined rate. The panning / scrolling logic 832a may, for example, be stored as one or more executable instructions. The panning / scrolling logic 832a may include processor and / or machine executable logic or instructions to generate user interface objects using data that characterizes movement of a pointer, for example data from a touch-sensitive display or from a computer mouse or trackball, or other user interface device.

[0116] The system memory 808 may also include communications programs 840, for example a server and / or a Web client or browser for permitting the processor-based device 804 to access and exchange data with other systems such as user computing systems, Web sites on the Internet, corporate intranets, or other networks as described below. The communications programs 840 in the depicted implementation is markup language based, such as Hypertext Markup Language (HTML), Extensible Markup Language (XML) or Wireless Markup Language (WML), and operates with markup languages that use syntactically delimited characters added to the data of a document to represent the structure of the document. A number of servers and / or Web clients or browsers are commercially available such as those from Mozilla Corporation of California and Microsoft of Washington.

[0117] While shown in Figure 8 as being stored in the system memory 808, the operating system 830, application programs 832, other programs / modules 834, drivers 836, program data 838 and server and / or communications programs 840 can be stored on any other of a large variety of nontransitory processor-readable media (e.g., hard disk drive, optical disk drive, SSD and / or flash memory).

[0118] A user may enter commands and information via a pointer, for example through input devices such as a touch screen 848 via a finger 844a, stylus 844b, or via a computer mouse or trackball 844c which controls a cursor. Other input devices can include a microphonejoystick, game pad, tablet, scanner, biometric scanning device, etc. These and other input devices ( / .< ., “I / O devices”) are connected to the processor(s) 806 through an interface 846 such as touchscreen controller and / or a universal serial bus (“USB”) interface that couples user input to the system bus 810, although other interfaces such as a parallel port, a game port or a wireless interface or a serial port may be used. The touch screen 848 can be coupled to the system bus 810 via a video interface 850, such as a video adapter to receive image data or image information for display via the touch screen 848. Although not shown, the processor-based device 804 can include other output devices, such as speakers, vibrator, haptic actuator, etc.

[0119] The processor-based device 804 may operate in a networked environment using one or more of the logical connections to communicate with one or more remote computers, servers and / or devices via one or more communications channels, for example, one or more networks 814a, 814b. These logical connections may facilitate any known method of permitting computers to communicate, such as through one or more LANs and / or WANs, such as the Internet, and / or cellular communications networks. Such networking environments are well known in wired and wireless enterprise-wide computer networks, intranets, extranets, the Internet, and other types of communication networks including telecommunications networks, cellular networks, paging networks, and other mobile networks.

[0120] When used in a networking environment, the processor-based device 804 may include one or more wired or wireless communications interfaces 814a, 814b (e.g., cellular radios, WI-FI radios, Bluetooth radios) for establishing communications over the network, for instance the Internet 814a or cellular network.

[0121] In a networked environment, program modules, application programs, or data, or portions thereof, can be stored in a server computing system (not shown). Those skilled in the relevant art will recognize that the network connections shown in Figure 8 are only some examples of ways of establishing communications between computers, and other connections may be used, including wirelessly. For convenience, the processor(s) 806, system memory 808, network and communications interfaces 814a, 814b are illustrated as communicably coupled to each other via the system bus 810, thereby providing connectivity between the above-described components. In alternative implementations of the processor-based device 804, the above-described components may be communicably coupled in a different manner than illustrated in Figure 8. For example, one or more of the above-described components may be directly coupled to other components, or may be coupled to each other, via intermediary components (not shown). In some implementations, system bus 810 is omitted and the components are coupled directly to each other using suitable connections.

[0122] Various plants are harvested in a harvesting window during which the crop may still be growing. Because the crops are still growing as they are being harvested, the timing of when a crop is harvested may impact its final harvested weight. For example, agave pinas are typically harvested during the seventh year after the agave plants are planted. Agave plants often grow as much as 20% during their seventh year. As a result, if the agave pina is harvested at an inopportune time during its seventh year, such as at the beginning of the harvesting window, the agave pinas may weigh substantially less than if it were harvested at the end of the harvesting window.

[0123] Ideally, each agave pina would be harvested once it achieves its maximum weight.

[0124] However, this is impractical in practice. Harvesting agave pinas from agave plants is labor-intensive and time-consuming. Due to constraints on labor capacity, processing capacity, storage capacity, etc., the harvesting window for a population of agave plants is large. For example, agave plants planted at approximately the same time may be harvested over a period of several months.

[0125] According to traditional techniques, subpopulations of agave plants or other crops are harvested according to convenience, availability of labor, distance between fields, other arbitrary factors, etc. Techniques described herein automatically optimize total crop yield by causing subpopulations to be harvested based on growth rates of the subpopulations.

[0126] For example, subpopulations having relatively low growth rates may be expected to grow less during the harvesting window. Thus, harvesting these subpopulations earlier in the harvesting window reduces overall yield less than harvesting subpopulations having a higher growth rate. In other words, allowing a subpopulation with a relatively high growth rate to grow until the end of the harvesting window increases overall yield more than allowing a subpopulation with a relatively low growth rate to grow until the end of the harvesting window. Traditional techniques for non-destructively measuring weight of agave pinas are unsatisfactory and too inaccurate to be useful for planning harvesting. However, techniques described herein enable pina or other plant weights to be non-destructively estimated, and overall crop weight to be estimated with configurable accuracy. Thus, substantial gains in harvesting yields can be realized.

[0127] Figure 9 is a logical flow diagram illustrating a process 900 for managing a subpopulation of plants based on an overall characteristic of the subpopulation in some embodiments.

[0128] Process 900 begins, after a start block, at block 902, where a subpopulation of plants is identified based on an aerial image of the plants. In various embodiments, the aerial image of the plants is taken using a camera of a satellite, a drone, an airplane, a balloon, etc. In some embodiments, the subpopulation is identified by performing clustering of the plants according to a characteristic. In various embodiments, the clustering is performed using hierarchical clustering, k-means clustering, graph-based clustering, unsupervised learning, principal component analysis, image segmentation, thresholding, edge detection, etc.

[0129] In non-limiting examples, the characteristic by which the plants are clustered is a dimension of the plant, estimated weight of the plant, color of the plant, development stage of the plant, etc. In some embodiments, clustering is performed such that the resulting clusters of plants are geographically contiguous. In some embodiments, clustering is performed such that two or more non-contiguous clusters of plants are determined to be a same cluster. In some embodiments, clustering is performed such that a specified number of clusters are produced.

[0130] In various embodiments, the subpopulation of plants is identified based on classification, segmentation, or any other technique usable to identify the subpopulation.

[0131] In some embodiments, the subpopulation of plants is identified based on a collective characteristic of the plants. In one non-limiting example, the subpopulation of plants is identified based on a spacing between the plants. Accordingly, the subpopulation of plants may correspond to an area in which plants are spaced relatively close together compared to other subpopulations of plants.

[0132] In some embodiments, the subpopulation of plants is identified based on a characteristic of a color, texture, etc. of the plants, soil, or other flora among the subpopulation of plants. In one non-limiting example, a subpopulation of plants having a relatively high soil moisture is identified based on a color or texture of soil among the subpopulation. After block 902, process 900 continues to block 904. At block 904, a count of plants in the subpopulation is determined. In various embodiments, the count of plants is determined using a feature extraction technique such as a Hough transform, an artificial intelligence model such as a convolutional neural network or support vector machine configured to detect the plants in the aerial image, edge detection, thresholding, etc. In some embodiments, the count of plants in the subpopulation is based on a geographic area occupied by the subpopulation and a known planting density of the subpopulation. For example, where the subpopulation occupies 2 acres and has a known planting density of 100 plants per acre, the number of plants in the subpopulation is determined to be 2 acres *100 plants / acre = 200 plants. After block 904, process 900 continues to block 906.

[0133] At block 906, a number of characteristic samples to obtain for a subpopulation is determined based on the count of plants in the subpopulation. In various embodiments, the characteristic sampled is a plant characteristic such as color; weight; sugar content; a dimension of a leaf, trunk, stem, flower, fruit, etc.; presence of disease or presence of pests; a soil characteristics such as moisture, potassium content, nitrogen content, phosphorous content, pH, etc.; or any other characteristic of the plant or its environment. In various embodiments, multiple characteristics are to be sampled.

[0134] In some embodiments, the number of samples to be taken is determined based on a target sampling error. In some embodiments, the number of samples to be taken is determined according to a stratified sampling technique such as proportionate allocation or optimum allocation. Proportionate allocation refers to sampling a subpopulation in proportion to its share of a total population. Optimum allocation refers to sampling a subpopulation in proportion to both its share of a total population and a standard deviation of a distribution of the characteristic. In some such embodiments, the sampling error is determined according to a sampling error equation such as Equation 1 :

[0135] a

[0136] Sampling Error = Z * —

[0137]

[0138] gn

[0139] Equation 1

[0140] In Equation 1, Z is a number of standard deviations away from a mean of the characteristic, a is a population standard deviation, and n is the sample size. As shown in Equation 1, sampling error decreases as the sample size increases. Accordingly, given a target sampling error, population standard deviation, and Z score, a sample size can be determined.

[0141] In some embodiments, the population standard deviation, the Z score, or both are determined individually for the subpopulation of plants. In some embodiments, the population standard deviation, the Z score, or both, are estimated by comparing the subpopulation of plants to other subpopulations of plants. For example, the population standard deviation for the subpopulation may be determined based on standard deviations for other subpopulations. In some embodiments, the other subpopulations are selected to be similar to the subpopulation in at least one characteristic such as geographic location, latitude, longitude, biome, etc. For example, the population standard deviation or Z score may be determined based on population standard deviations or Z scores for other populations in a same geographic area as the subpopulation.

[0142] While Equation 1 is provided as an example of how the number of samples is determined for a subpopulation, the disclosure is not so limited. In various embodiments, the number of characteristic samples is determined based on a resampling size of a bootstrapping algorithm used to estimate a distribution of the characteristic samples, a target maximum margin of error at a given confidence level, etc. After block 906, process 900 proceeds to block 908.

[0143] At block 908, the determined number of samples is obtained for the subpopulation. In some embodiments, the determined number of samples is obtained based on an arbitrary sampling of the subpopulation. For example, when the subpopulation corresponds to a geographic area, the samples may be obtained from any plants in the geographic area.

[0144] In some embodiments, the samples are taken randomly from the subpopulation. For example, when the subpopulation corresponds to a geographic area, the samples may be obtained from randomly selected plants or locations in the geographic area.

[0145] In some embodiments, the samples are obtained based on providing instructions to a worker to collect the samples. For example, when it is determined that 15 samples are required for the subpopulation, a map of the subpopulation with 15 indicators of sample locations may be provided to a user device accessible to the worker. The characteristic samples are then obtained from the user device according to the instructions provided to the worker.

[0146] In some embodiments, the characteristic samples are obtained based on providing instructions to a drone or other unmanned vehicle. For example, when the characteristic is weight, a drone may obtain a weight of the plant using an embodiment process 300 of Figure 3.

[0147] In some embodiments, the samples are of a characteristic used to identify the subpopulation in block 902. In one non-limiting example where the characteristic used to identify the subpopulation is an estimated weight of an agave pinas, the samples are of an estimated weight of the agave pinas. In some embodiments, the samples are of a characteristic different from a characteristic used to identify the subpopulation.

[0148] After block 910, an overall characteristic of the subpopulation is determined based on the characteristic samples. In various embodiments, the overall characteristic is based on any feature or combination of values of the samples such as a sum, median, mean, mode, standard deviation, interquartile range, range, mean absolute difference, median absolute deviation, average absolute deviation, distance standard deviation, entropy, variance, etc. In some embodiments, the overall characteristic of the subpopulation is based on multiple metrics based on the samples. For example, the overall characteristic may include an entropy and a mean of values of the samples. In one non-limiting example, the overall characteristic is a total estimated weight of crops that can be harvested from the subpopulation. After block 910, process 900 proceeds to block 912.

[0149] At block 912, the plants of the subpopulation are managed based on the overall characteristic of the subpopulation. In various embodiments, managing the plants of the subpopulation includes one or more of: harvesting the plants; watering the plants; pruning the plants, applying fertilizer, pesticides, herbicides, etc. to the plants; fencing the plants; shading the plants; modifying soil drainage for the plants; etc. In some embodiments, the plants of the subpopulation are automatically managed based on the overall characteristic of the subpopulation. In one non-limiting example where the overall characteristic is a total harvestable weight of the subpopulation, a watering system is automatically controlled to water the subpopulation based on the overall estimated harvested weight of the subpopulation. In another non-limiting example where the overall characteristic is an overall growth rate of the subpopulation, the subpopulation is harvested or scheduled to be harvested based on the overall growth rate. The subpopulation may be harvested relatively early based on the overall growth rate being relatively low among a plurality of subpopulations or may be harvested relatively later based on the overall growth rate being relatively high among the plurality of subpopulations. After block 912, process 900 ends at an end block.

[0150] In various embodiments, process 900 is used to identify multiple subpopulations of plants and determine overall characteristics of each of the subpopulations. Accordingly, different numbers of samples may be collected for various subpopulations of plants depending on a count of plants in the subpopulation or other factors.

[0151] In various embodiments, process 900 is performed periodically, and trends in subpopulation formation, growth or decline in geographic area, etc. are identified. In various embodiments, process 900 is performed with a monthly, quarterly, bi-annual, or annual periodicity. In some embodiments, the periodicity is determined based on a rate of change in the subpopulation. For example, a subpopulation that grows in geographic area more than a first threshold value between performances of process 900 may be monitored with increased frequency, while a subpopulation that grows in geographic area less than a second threshold value may be monitored with decreased frequency.

[0152] In various embodiments, monitoring development of one or more subpopulations over time enables correlations to be made between characteristics of a geographic area corresponding to the subpopulations and developments in the subpopulation. As described below, these correlations can be used to improve crop yield by improving selection of geographic areas to use for crop cultivation, determining remediation or maintenance to be performed on geographic areas sharing the characteristics, or improving accuracy of yield estimates for geographic areas having the characteristics.

[0153] In one non-limiting example, a subpopulation of agave plants affected by a fungal disease is identified based on plants of the subpopulation having relatively lower weight, abnormal color, or other characteristics. By periodically identifying plants in the subpopulation having the fungal disease, spread of the fungal disease may be tracked over time. In some embodiments, expected changes in a subpopulation over time are determined based on the periodic monitoring.

[0154] In some embodiments, correlations are calculated between characteristics of the geographic area of the subpopulation and an increased risk of formation of subpopulations having the fungal disease. For example, a correlation between characteristics of the geographic area such as rainfall above a threshold value, soil drainage below a threshold value, soil moisture above a threshold value, etc. and development of a subpopulation having the fungal disease may be calculated. The correlations may be used to identify other geographic areas at risk of developing subpopulations with the fungal disease and recommend or cause remedial action to be performed on the geographic areas, etc. In some embodiments, expected yields of geographic areas sharing similarities with the geographic area may be downgraded due to a risk of developing the fungal disease. In some embodiments, a recommendation not to purchase, lease, or cultivate geographic areas sharing characteristics with the geographic area are provided based on tracking the growing characteristics of the geographic area over time.

[0155] In another non-limiting example, periodic monitoring of growth rates of a subpopulation of plants using process 900 identifies that the subpopulation of plants demonstrates a high growth rate over time. This may indicate the presence of abnormally favorable growing conditions in the geographic area such as the presence of a symbiotic root microbe, advantageous sun exposure, proper soil drainage or nutrient content, effective care practices, presence of a beneficial genetic variant of the plant in a subpopulation, etc. In some embodiments, correlations between characteristics of the geographic area and development of high-growth rate subpopulations over time are identified. In some embodiments, expected yields for other geographic areas sharing these characteristics are increased based on the determined correlations. In some embodiments, a recommendation to purchase, lease, or cultivate other geographic areas sharing characteristics with the geographic area is made based on monitoring development of the geographic area over time. In one non-limiting example, it is determined that south-facing land having a grade between 2% and 5% tends to produce subpopulations of plants having a growth rate more than a threshold value above a baseline growth rate. Accordingly, a recommendation to cultivate plants in geographic areas that are south-facing and having a grade between 2% and 5% is made. In some embodiments, geographic areas fitting the relevant characteristics are automatically identified and provided with the recommendation.

[0156] Figure 10 is a logical flow diagram illustrating a process 1000 for managing plants in a field based on a total crop weight of the field in some embodiments. Process 1000 starts, after a start block, at block 1002, where an aerial image of plants in a field is obtained. After block 1002, process 1000 proceeds to block 1004.

[0157] At block 1004, diameters of the plants are determined based on the aerial image. In some embodiments, the diameters correspond to numbers of pixels in the aerial image. For example, when a plant has a diameter of 8 pixels in the aerial image, the diameter may be 8. In some embodiments, the diameters correspond to a determined physical diameter of the plant. For example, it may be determined based on the aerial image that a physical diameter of a plant is 36 inches using photogrammetry or other image processing techniques. After block 1004, process 1000 proceeds to block 1006.

[0158] At block 1006, subpopulations of plants are identified based on the diameters of the plants. In various embodiments, block 1006 employs embodiments of block 902 of Fig. 9 to identify the subpopulations of plants. After block 1006, process 1000 proceeds to block 1008.

[0159] At block 1008, counts of plants in the subpopulations are determined. In various embodiments, block 1008 employs embodiments of block 904 to determine the counts of plants in the subpopulations. After block 1004, process 1000 proceeds to block 1006.

[0160] At block 1010, sample counts to achieve a target weight sampling accuracies for subpopulations of the plants are determined. In various embodiments, block 1010 employs embodiments of block 906 to determine the target weight sampling accuracies for the subpopulations of the plants. For example, it may be determined that to achieve at least 95% weight sampling accuracy, 5 weight samples are to be taken for a first subpopulation, 18 samples are to be taken for a second subpopulation, etc. After block 1010, process 1000 proceeds to block 1012.

[0161] At block 1012, the determined number of weight samples is obtained for each subpopulation. In various embodiments, block 1012 employs embodiments of block 908 to obtain the determined number of weight samples for each subpopulation. After block 1012, process 1000 proceeds to block 1014.

[0162] At block 1014, total subpopulation weights are determined based on corresponding weight samples and counts of plants in the subpopulations. In some embodiments, a total subpopulation weight is determined by multiplying a counts of plants in the subpopulation by an average weight of the weight samples. For example, when the average weight of the samples is 30kg and the subpopulation includes 1,000 plants, the total subpopulation is 30kg x 1,000 = 30,000kg. After block 1014, process 1000 proceeds to block 1016.

[0163] At block 1016, a total weight of plants in a field is determined based on the total subpopulation weights. In one non-limiting example, a first total subpopulation weight is 10 tons, a second total subpopulation weight is 15 tons, and a third total subpopulation weight is 8 tons. Accordingly, in some embodiments, the total weight of plants in the field is a sum of the subpopulation weights: 10 + 15 + 8 = 33 tons. After block 1016, process 1000 proceeds to block 1018.

[0164] At block 1018, the plants in the field are managed based on the total field weight. In various embodiments, block 1018 employs embodiments of block 912 to manage the plants in the field based on the total weight of the plants. In one non-limiting example, the total field weight is used to plan harvesting of the field, as discussed with respect to Fig. 11. After block 1018, process 1000 ends at an end block.

[0165] Figure 11 is a logical flow diagram illustrating a process 1100 for causing plant populations (e.g., one or more fields of plants) to be harvested according to growth rates of the plant populations in some embodiments. Process 1100 begins, after a start block, at block 1102, where a first overall weight at a first time is obtained for a plurality of plant populations. In various embodiments, block 1102 employs embodiments of process 1000 of Fig. 10 to obtain the first overall weight at the first time. After block 1102, process 1100 proceeds to block 1104.

[0166] At block 1104, a second overall weight at a second time is obtained for the plurality of plant populations. In various embodiments, block 1104 employs embodiments of process 1000 of Fig. 10 to obtain the first overall weight at the first time. After block 1104, process 1100 continues to block 1106. At block 1106, a growth rate is determined for each of the plant populations based on the first overall weight and the second overall weight. In some embodiments, the growth rate is a percentage of growth of each plant population between the first time and the second time. In some embodiments, the growth rate is a weight difference between the second overall weight and the first overall rate.

[0167] In various embodiments, the growth rate is an estimated growth rate over a select period of time, such as a week, month, two months, etc. The estimated growth rate over the select period may be estimated by comparing the overall weights for each plant population to historical data for the plant population, such as from a previous growing season. In one non-limiting example, the growth rate is estimated by providing the overall weights to an artificial intelligence model trained to determine an overall growth rate over a select time period based on the overall weights. In one non-limiting example, the artificial intelligence model is trained to determine an overall growth rate in a time period after the first time and the second time. Estimating growth rates in future time periods, such as during a harvesting window, may enable harvesting to be planned months in advance. This provides additional opportunities to provision or manage harvesting resources such as workers, harvesting equipment, transportation, processing capacity, etc. To illustrate, where the first time is May 15, 2025, and the second time is June 15, 2025, the artificial intelligence model may be trained to estimate an overall growth rate for the plant population between August 1, 2025, and September 1, 2025, an overall growth rate from May 15, 2025, to September 1, 2025, or any other period. In some embodiments, the time period is at least partially during a harvesting window for the plant population. In various embodiments, a same artificial intelligence model is used to estimate growth rates for each plant population, a set of plant populations, or one plant population. In some embodiments, a separate artificial intelligence model is trained for each plant subpopulation, using historical data from the plant subpopulation.

[0168] In some embodiments, the artificial intelligence model is trained using historical data from the plant populations that includes one or more overall weights and corresponding observed growth rates. In some embodiments, the artificial intelligence model is trained by providing the overall weights as inputs and comparing a produced output of the artificial intelligence model to the corresponding observed growth rate. After block 1106, process 1100 proceeds to block 1108.

[0169] At block 1108, an order in which each plant population is to be harvested is determined based on the growth rates. In some embodiments, the order specifies that the plant populations are to be harvested in order from lowest growth rate to highest growth rate, maximizing an overall growth rate of the plant populations during the harvesting window. In some embodiments, the harvesting order is based on an estimated total growth of each plant population (e.g., an integral of the growth rate over a select period such as the harvesting window), such that an estimated total growth is optimized. In some embodiments, the order in which each plant population is to be harvested is determined using dynamic programming to maximize a total growth rate or estimated harvested weight of the plant populations during the harvesting window.

[0170] In various embodiments, the order in which each plant population is to be harvested is based at least partially on other factors, such as availability of harvesting or processing resources at a given time, proximity to other plant populations, estimated weather during a time period, etc. In one non-limiting example, the order in which each plant population is to be harvested is based on a distance between the plant populations. Accordingly, even if a first plant population has a lower growth rate than a second plant population, the first plant population may be harvested later if it increases an overall travel distance by more than a configurable threshold. Determining the harvesting order based on distances between plant populations may prevent the harvesting order from dictating inefficient or impractical travel between plant populations. After block 1108, process 1100 proceeds to block 1110.

[0171] While process 1100 is discussed in terms of a growth rate calculated using a first overall weight at a first time and a second overall growth rate at a second time, the disclosure is not so limited. In various embodiments, any number of growth rates at any times may be used. In one non-limiting example, a growth rate of each plant population is based on three, five, ten, etc. overall weights taken at corresponding times.

[0172] At block 1110, the plant populations are caused to be harvested according to the determined order. In some embodiments, causing the plant populations to be harvested includes providing instructions to harvest the plant populations to a user device or a harvesting device, as described at least with respect to Figs. 12B and 14C. In some embodiments, the instructions to harvest the plant populations include directions to navigate to a plant population, instructions regarding how the plant population is to be harvested, etc. After block 1110, process 1100 ends at an end block.

[0173] Figures 12A and 12B illustrate interfaces for scouting plants in some embodiment. In some embodiments, the interfaces shown in Figures 12A and 12B are components of a same interface. Figure 12A is a display diagram showing an interface 1200a of average agave pina weight for subpopulations of agave plants in a field in some embodiments. Interface 1200a includes back input 1202, field details 1220, selected values 1230, and visualization 1240. Field details 1220 includes various information about a selected field. As shown in field details 1220 include a property name “Ranch A Corral,” a region “Cancila,” a municipality “Amagamo,” a year planted “2021,” a scouting point “8+1,” a hectares “8.8,” a number of fractions “5,” a manager “Charlie John,” and a crew leader “Joseph Antony Camron.” Selected values 1230 includes a table of actual, target, and harvest target values for individual agave weights, total field weights, and growth rates.

[0174] Visualization 1240 includes a bar graph showing a distribution of agave weights for the field, stratified by subpopulation. In various embodiments, the number of strata shown in visualization 1240 is configurable.

[0175] Figure 12B is display diagram showing an interface 1200b including a map 1250 of subpopulations of agave plants in a field in some embodiments. As shown, boundaries of the field are defined by bounding polygon 1252. Map 1250 includes multiple scouting indicators such as scouting indicator 1254. The scouting indicators correspond to locations that have been or are to be scouted, such as by taking samples at the locations. For example, map 1250 may be displayed using a user device accessible to a worker to show where in the field the worker is to obtain samples of a characteristic, such as estimated weight. In some embodiments, map 1250 is updated based on receiving a sample that corresponds to a scouting indicator. For example, when a characteristic sample associated with scouting indicator 1254 is obtained from a user device, a display of a worker’s user device may be updated to remove scouting indicator 1254, change a color, icon, or other display characteristic of scouting indicator 1254, add a measured value for the characteristic sample, or otherwise indicate that a characteristic sample corresponding to scouting indicator 1254 has been received.

[0176] As discussed herein, obtaining a specified number of characteristic samples at specified locations within a field or subpopulation thereof enables a target sampling accuracy to be achieved. Distribution of scouting indicators within the field or within a subpopulation of the field may impact a representativeness of samples taken according to the scouting indicators. For example, if multiple samples are taken within a small area of the subpopulation or the field, those samples may be less representative of the field or subpopulation as a whole than samples taken over a larger area of the field or subpopulation.

[0177] In various embodiments, locations of the scouting indicators are determined based on a subpopulation-level metric. For example, scouting indicators may be placed within a subpopulation to maximize an overall inter-point distance between the scouting indicators within the subpopulation. For example, when a subpopulation corresponds to a geographical square and two scouting indicators are to be placed, the two scouting indicators are placed in opposite corners of the geographical square to maximize the inter-point distance between the two scouting indicators. In some embodiments, scouting indicators are randomly or arbitrarily distributed within the subpopulation.

[0178] In some embodiments, locations scouting indicators are determined based on a field-level metric. For example, scouting indicators may be placed in subpopulations within a field so as to minimize a total travel distance between the scouting indicators. Scouting indicators for adjacent subpopulations may be placed within a threshold distance of a boundary between the subpopulations to reduce an overall travel distance to obtain characteristic samples of the adjacent subpopulations.

[0179] In various embodiments, locations of the scouting indicators are determined according to any combination of one or more subpopulation-level metrics or field-level metrics. In some embodiments, weights are assigned to each metric in the combination of metrics. In one nonlimiting example, sample representativeness is weighted 0.7, and travel distance between scouting indicators is weighted 0.3. This may cause the scouting indicators to be placed with a higher interpoint distance than if travel distance between the scouting indicators were more heavily weighted relative to the sample representativeness.

[0180] In some embodiments, one or more versions of map 1250 are displayed or updated using multiple user devices. For example, it may be impractical for a single worker to obtain a sample corresponding to each scouting indicator shown in map 1250. A travel distance or number of characteristic samples involved may be impracticably large, it may be faster or more efficient for multiple workers to collect the samples for a field or one or more subpopulations of the field, etc.

[0181] In some embodiments where map 1250 is configured to be displayed using multiple user devices, each user device displays a same set of scouting indicators, which are updated based on receiving a sample associated with a scouting indicator. In some such embodiments, display of map 1250 on two or more user devices is updated based on receiving confirmation from a user device that a characteristic sample associated with a scouting indicator has been obtained. This may prevent duplicative sampling where multiple workers are obtaining samples in a field.

[0182] In various embodiments, display of map 1250 is modified based on a characteristic of a user device being used to display map 1250. In some embodiments, one or more scouting indicators are assigned to the user device and displayed on map 1250 using the user device based on a location of the user device. For example, the one or more scouting indicators may be assigned to the user device based on locations corresponding to the scouting indicators being within a threshold distance of the user device such as 100 feet, 500 feet, 0.1 miles, etc. In another non-limiting example, a scouting indicator is assigned to the user device based on the user device being relatively closer to a location corresponding to the scouting indicator than one or more other user devices.

[0183] Figures 13 A and 13B illustrate interfaces including information for managing plant populations in some embodiments. In some embodiments, the interfaces shown in Figures 13 A and 13B are displayed as components of a same interface. Figure 13 A is a display diagram illustrating an interface 1300a including information for managing plant populations in some embodiments. Interface 1300a includes summary table 1310 and fields table 1320.

[0184] In various embodiments, summary table 1310 includes aggregated metrics for one or more selected fields of agave plants, all fields in fields table 1320, or both.

[0185] Fields table 1320 displays various metrics for fields. As shown in Fig. 13 A, fields table 1320 includes columns corresponding to: Field ID, Weight, Field Weight, Production, Growth Rate, Maturity Weight, and Region, where each row of columns 1326, such as row 1326a, corresponds to an individual field. As shown in Fig. 13 A, the rows of fields table 1320 are sorted according to values in the growth rate column.

[0186] Interface 1300a also includes clear input 1322 and apply to map input 1324. In some embodiments, receiving selection of clear input 1322 clears a selection of fields, such as by deselecting row 1326a. In some embodiments, receiving selection of apply to map input 1324 causes information from fields table 1320 to be displayed using a map, as discussed with respect to Figure 13B.

[0187] Figure 13B is a display diagram illustrating an interface 1300b including a map 1330 of plant subpopulations in some embodiments. In some embodiments, interface 1300b is displayed using a display associated with server 112 of Figure 1 or a computing device that is communicatively coupled to server 112 of Fig. 1. Interface 1300b includes harvest optimizer input 1302, scouting optimizer input 1304, and map 1330.

[0188] In some embodiments, in response to receiving selection of harvest optimizer input 1302, harvesting plan overview 1410 of Fig. 14A or interface 1420 of Fig. 14B are displayed. In some embodiments, in response to receiving selection of harvest optimizer input 1302, harvesting instructions such as harvesting route 1430 of Fig. 14C are provided to one or more computing devices associated with the harvesting, such as a user device of a harvester, a computing device of a harvesting machine such as a combine, a computing device of an autonomous vehicle, etc. In some embodiments, in response to receiving selection of scouting optimizer input 1304, an interface similar to interface 1200b of Fig. 12B is provided to a computing device for display.

[0189] Map 1330 includes information corresponding to fields 1332a, 1332b, 1332c, and 1332d, as well as legend 1334. As shown in map 1330, the fields are shaded by growth rates based on legend 1334.

[0190] Figure 14A is a display diagram illustrating an interface showing a harvesting plan overview 1410 based on field growth rates in some embodiments. Harvesting plan overview 1410 includes information indicating a region, harvest period, daily requirement, and number of harvest teams for the corresponding harvesting plan. Harvesting plan overview 1410 also includes a travel summary showing travel distances and route suitability indicators associated with each destination in the harvesting plan. Harvesting plan overview 1410 further includes a cost avoidance estimate corresponding to an estimated cost savings of the harvesting plan as compared to a baseline harvesting plan. In some embodiments, the baseline harvesting plan corresponds to an expected value of harvesting at the harvesting locations at an arbitrary time in a harvesting window. In some embodiments, baseline harvesting plan is determined according to a baseline metric such as crop planting order or minimizing travel time between the harvesting locations, a previously used harvesting plan, etc. Harvesting plan overview 1410 also includes a target harvesting weight for the harvesting plan and an estimated total harvesting weight of the included harvesting destinations. In the case shown in Fig. 14a, the target harvesting weight is 2250 tons and the estimated total harvesting weight is 2,146.6 tons. In some embodiments, acceptance of the harvesting plan overview 1410 is received, and information usable to carry out the harvesting plan is provided to one or more computing devices associated with the harvesting.

[0191] Figure 14B is a display diagram showing an interface 1420 of information for fields to be harvested in some embodiments. As shown in interface 1420, the fields are sorted in ascending order of growth rate, with a first five fields selected for harvesting as indicated by the checkmarks on the righthand side of interface 1420. In some embodiments, the fields are sorted in ascending order based on growth rate, and fields to be included in the harvesting plan are automatically selected based on a target harvesting weight. In one non-limiting example where the target harvesting weight is 2,250, the five selected fields are automatically selected because the forecasted total weight of the five selected fields is 2,234.3 tons. In various embodiments, the fields are selected such that the target harvesting weight is exceeded, is not exceeded, is within a threshold, etc. In some embodiments, one or more non-consecutive fields are selected to better achieve the target harvesting weight. For example, a field in the sorted growth rate order may not be selected if it causes the forecasted total weight to exceed the threshold, but a field lower in the sorted growth rate order may be selected where it does not cause the forecasted total weight to exceed the threshold.

[0192] Figure 14C is a display diagram illustrating an interface 1400a showing a harvesting route 1430 based on field growth rates in some embodiments. In some embodiments, interface 1400a is provided to a user computing device such as user device 103 of Fig. 1, such that a harvesting plan corresponding to harvesting route 1430 can be executed. As shown in harvesting route 1430, travel times or distances between harvesting destinations may be displayed on harvesting route 1430. In some embodiments, in response to detecting that a user device displaying interface 1400a is within a threshold distance of a harvesting destination, an interface corresponding to the harvesting destination, such as interface 1200b of Fig. 12B is caused to be displayed on the user device.

[0193] Figure 14D is a display diagram illustrating an interface 1400b showing a harvesting plan based on field growth rates in some embodiments. As shown, interface 1400b includes harvesting plan overview 1410 of Fig. 14A and interface 1420 of Fig. 14B. In some embodiments, harvesting plan overview 1410 automatically updates in response to receiving selection or deselection of a field using column 1422. For example, in response to receiving selection of the row corresponding to Field ID 183TUX3165, the total target harvesting weight may be increased by 500.1 tons. Additionally, the harvesting route may be updated to include the field as a destination. In some embodiments, receiving a change to harvest destinations causes the harvesting route to be recalculated to optimize the harvesting route given the change.

[0194] Figure 14E is a display diagram illustrating an interface 1400c showing a harvesting route 1430 based on field growth rates in some embodiments. Fig. 14E is similar to Fig. 14C but provides a higher level of zoom. As shown in Fig. 14E, different legs of the harvesting route are indicated using differently dashed lines. While each of the legs of the harvesting route are shown in Figure 14E, in some embodiments only an active leg of the harvesting route is shown. In some embodiments, additional legs of the harvesting route are selectively displayed.

[0195] Figure 15 is a display diagram illustrating an interface 1500 including a harvest optimization dashboard 1501 for a select field in some embodiments. In some embodiments, harvest optimization dashboard 1501 is displayed in response to a user hovering or selecting a field shown in interface 1500. As shown, the harvest optimization dashboard 1501 includes various metrics associated with the select field, such as previous metrics 1502 and optimized metrics 1504. In some embodiments, previous metrics 1502 are based on measured or estimated metrics from a previous harvest of the field. In some embodiments, previous metrics 1502 are based on a predicted harvest according to a baseline harvesting practice, such as by harvesting the field at an arbitrary time in a harvesting window, using a traditional harvesting practice, etc. In some embodiments, optimized metrics 1504 are determined based on a harvesting schedule determined according to growth rates as determined using process 1100 of Fig. 11.

[0196] Figures 16A and 16B illustrate interfaces for managing scouting and harvesting for a region. In some embodiments, the interfaces of Figures 16A and 16B are displayed as components of a same interface. Figure 16A is a display diagram showing an interface 1600 including information for managing plant populations in a region in some embodiments.

[0197] Interface 1600 includes summary table 1610 and fields table 1620. Summary table 1610 includes enterprise- wide metrics as well as selected field metrics that correspond to the region shown in Fig. 16B. As demonstrated by Figs. 16A and 16B, in various embodiments a harvesting plan is created for a relatively large region, such as a region encompassing tens of thousands of square miles and a potentially large number of fields. Accordingly, the harvesting plan may encompass subpopulations of a single field, a small number of fields, or a large number of fields across a region. In some embodiments where a harvesting plan is for a region, the harvesting plan includes multiple harvesting sub-plans, each of which is provided to an entity implementing the harvesting sub-plan. For example, a first harvesting sub-plan may be created for a first cluster of fields in the region, a second harvesting sub-plan may be created for a second cluster of fields in the region, etc.

[0198] Figure 16B is a display diagram showing an interface 1600 including a regional map of fields 1630 in some embodiments. In various embodiments, interface 1600 is similar to interface 1300b of Fig. 13B. Interface 1600 includes harvest optimizer input 1602 and scouting optimizer input 1604. In some embodiments, receiving selection of harvest optimizer input 1602 causes interface 1600a of Fig. 16A to be displayed. In some embodiments, receiving selection of scouting optimizer input 1604 causes an interface indicating locations at which characteristic samples are to be taken, similar to interface 1200b of Fig. 12b.

[0199] The foregoing detailed description has set forth various implementations of the devices and / or processes via the use of block diagrams, schematics, and examples. Insofar as such block diagrams, schematics, and examples contain one or more functions and / or operations, it will be understood by those skilled in the art that each function and / or operation within such block diagrams, flowcharts, or examples can be implemented, individually and / or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one implementation, the present subject matter may be implemented via Application Specific Integrated Circuits (ASICs). However, those skilled in the art will recognize that the implementations disclosed herein, in whole or in part, can be equivalently implemented in standard integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more controllers (e.g., microcontrollers) as one or more programs running on one or more processors (e.g., microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and / or writing the code for the software and or firmware would be well within the skill of one of ordinary skill in the art in light of this disclosure.

[0200] Those of skill in the art will recognize that many of the methods or algorithms set out herein may employ additional acts, may omit some acts, and / or may execute acts in a different order than specified.

[0201] In addition, those skilled in the art will appreciate that the mechanisms taught herein are capable of being distributed as a program product in a variety of forms, and that an illustrative implementation applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include, but are not limited to, the following: recordable type media such as floppy disks, hard disk drives, CD ROMs, digital tape, and computer memory.

[0202] The various embodiments described above can be combined to provide further embodiments. All of the U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification, including U.S. Provisional Patent Application No. 63 / 711,489, filed October 24, 2024, are incorporated herein by reference, in their entirety. Aspects of the embodiments can be modified, if necessary to employ concepts of the various patents, applications and publications to provide yet further embodiments.

[0203] These and other changes can be made to the embodiments in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific embodiments disclosed in the specification and the claims, but should be construed to include all possible embodiments along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure.

Claims

CLAIMS1. A method comprising:obtaining a digital image of an agave plant;identifying the agave plant in the digital image based on a first segmentation of the digital image;determining a pixel dimension of a pina of the agave plant in the digital image based on a second segmentation of the agave plant in the digital image;determining a reference pixel dimension of a reference feature in the digital image; determining, based on the reference pixel dimension and the pixel dimension of the pina, a measurement of the pina; andestimating a weight of the pina based on the measurement of the pina.

2. The method of claim 1, wherein estimating the weight of the pina based on the measurement of the pina comprises:providing the measurement of the pina as input to a trained artificial intelligence model; andreceiving, via the trained artificial intelligence model, the weight of the pina.

3. The method of claim 2, further comprising:determining an offset of the reference feature from the pina; andproviding the offset as input to the trained artificial intelligence model.

4. The method of claim 2, further comprising:obtaining a characteristic of the agave plant; andproviding the characteristic of the agave plant as input to the trained artificial intelligence model.

5. The method of claim 2, wherein the trained artificial intelligence model was trained by:obtaining training data that includes dimensions of pinas and corresponding labels that indicate weights of the pinas; andtraining the artificial intelligence model using the training data.

6. The method of claim 1, further comprising:determining an offset of the reference feature from the pina; andcalculating a corrected pixel dimension of the pina based on the offset and the pixel dimension of the pina,wherein determining a measurement of the pina comprises determining a measurement of the pina based on the reference pixel dimension and the corrected pixel dimension of the pina.

7. The method of claim 1, further comprising:obtaining one or more characteristics of the agave plant, including at least one of a size, age, season, or variety of the agave plant; andestimating the weight of the pina based on the one or more characteristics of the agave plant and the measurement of the pina.

8. The method of claim 1, wherein the reference feature includes a feature of the agave plant.

9. The method of claim 1, further comprising:comparing the estimated weight to a threshold weight; andinstructing that the pina be harvested based on the comparing.

10. A system comprising:a camera;one or more processors; andone or more non-transitory computer-readable media storing instruction executable to cause the one or more processors to perform actions, the actions including:obtain, via the camera, a digital image of a crop;identify the crop in the digital image based on a first segmentation of the digital image;determine a pixel dimension of a crop feature based on a second segmentation of the crop in the digital image;determine a reference pixel dimension of a reference feature in the digital image; determine a measurement of the crop based on the reference pixel dimension and the pixel dimension of the crop feature; andestimate a weight of the crop based on the measurement of the crop.

11. The system of claim 10, wherein the one or more processors determine the reference pixel dimension of the reference feature in the digital image by being further configured to:determine the pixel dimension of a second feature of the crop in the digital image.

12. The system of claim 10, wherein the one or more processors are further configured to:determine an offset of the reference feature from the crop feature; andcalculate a corrected pixel dimension based on the crop feature and the offset.

13. The system of claim 10, wherein the one or more processors estimate the weight of the crop by being further configured to:provide the measurement of the crop to a trained artificial intelligence model; and receive, via the trained artificial intelligence model, an indication of the weight of the crop.

14. The system of claim 13, wherein the trained artificial intelligence model was trained by:obtaining training data that includes images of crops and corresponding labels that indicate weights of the crops; andtraining the artificial intelligence model using the training data.

15. The system of claim 10, wherein the one or more processors determine the reference pixel dimension in the digital image by being further configured to:determine the pixel dimension of a fiducial having a known dimension in the digital image.

16. The system of claim 10, wherein the system further comprises:a vehicle that includes the camera.

17. One or more non-transitory computer-readable media that store instructions, wherein the instructions are executable by one or more processors to perform operations, the operations comprising:obtaining a digital image of a crop;determining a pixel dimension of a crop feature using a first trained artificial intelligence model;providing the pixel dimension of the crop feature to a second trained artificial intelligence model; andreceiving, via the second trained artificial intelligence model, an estimated weight of the crop.

18. The one or more non-transitory computer-readable media of claim 17, wherein the first trained artificial intelligence model and the second trained artificial intelligence model are separate artificial intelligence models.

19. The one or more non-transitory computer-readable media of claim 17, wherein the second artificial intelligence model was trained by:obtaining training data that includes pixel dimensions of crops and corresponding labels that indicate weights of the crops; andtraining the artificial intelligence model using the training data.

20. The one or more non-transitory computer-readable media of claim 17, wherein providing the pixel dimension of the crop feature to the second trained artificial intelligence model comprises:providing, to the second artificial intelligence model, one or more characteristics of the crop, including at least one of a size, age, season, or a variety of the crop.

21. One or more non-transitory computer-readable media storing instructions executable by one or more processors to perform actions, the actions comprising:determining, using stratified sampling and based on first images of agave plants in a field, a first weight of the agave plants at a first time;determining, using stratified sampling and based on second images of the agave plants in the field, a second weight of the agave plants at a second time;determining a growth rate of the agave plants based on the first weight and the second weight;determining, based on the growth rate, a time at which the field is to be harvested; and causing the field to be harvested at the determined time.

22. The one or more non-transitory computer-readable media of claim 21, wherein determining the time at which the field is to be harvested includes:comparing the growth rate to a plurality of growth rates corresponding to a plurality of other fields; andscheduling the field to be harvested based on the comparing.

23. The one or more non-transitory computer-readable media of claim 22, wherein scheduling the field to be harvested based on the comparing includes:sorting the plurality of other fields and the field by growth rate; andscheduling the plurality of fields and the field to be harvested based on the sorting.

24. The one or more non-transitory computer-readable media of claim 21, wherein the first weight of the agave plants corresponds to an estimated total weight of agave pinas that would be obtained from harvesting the agave plants.

25. A system comprising:one or more processors; andone or more memories storing instructions executable by the one or more processors to perform actions, the actions including:obtain an image of plants in a field;determine, based on the image, a dimension of at least some of the plants in the field;identify, based on the dimensions, subpopulations of plants in the field; determine, based on the image, a count of plants in each subpopulation; obtain a target sampling accuracy;based on the count of plants in each subpopulation and the target sampling accuracy, determine a number of weight samples to be taken for each subpopulation to achieve the target sampling accuracy;obtaining the corresponding number of weight samples for each subpopulation; determine, for each subpopulation, a total subpopulation weight based on the weight samples and the count of plants in each subpopulation;determine a field weight based on the total subpopulation weights; and manage the plants in the field based on the field weight.

26. The system of claim 25, wherein the one or more processors are further configured to:determine a second field weight;determine a growth rate of the plants in the field based on the field weight and the second field weight; andmanage the plants in the field based on the growth rate.

27. The system of claim 25, wherein the one or more processors are further configured to:determine a second field weight;determine a growth rate of the plants in the field based on the field weight and the second field weight;determine a time at which to harvest the field by comparing the growth rate to growth rates corresponding to other fields; andcause the field to be harvested at the determined time.

28. A method comprising:obtaining an aerial image of plants;obtaining a target sampling accuracy for the plants;determining, based on the aerial image of the plants, a characteristic of each of the plants; identifying, based on the characteristic, a subpopulations of the plants;determining a count of plants in the subpopulation;based on the count of plants and the target sampling accuracy, determining a number of samples to be taken of the subpopulation;obtaining the number of samples of the subpopulation;determining a subpopulation characteristic based on the number of samples and the count of plants in the subpopulation; andcausing the plants to be managed based on the subpopulation characteristic.

29. The method of claim 28, wherein determining the characteristic of each plant includes determining a diameter of each plant.

30. The method of claim 28, wherein determining the characteristic of each plant includes determining a color of each plant.

31. The method of claim 28, wherein determining the characteristic of each plant includes determining a health of each plant.

32. The method of claim 28, wherein determining the characteristic of each plant includes determining a spacing of each plant.

33. The method of claim 28, wherein obtaining the number of samples includes: providing, to a user device, instructions indicating how to obtain the corresponding number of samples; andreceiving, from the user device, the corresponding number of samples.

34. The method of claim 28, wherein identifying the subpopulation of the plants includes clustering the plants into the subpopulation based on the characteristic of each of the plants.

35. The method of claim 28, wherein causing the plants to be managed based on the subpopulation characteristic includes at least one of:scheduling the plants to be harvested;harvesting the plants;applying a fertilizer to the plants;applying an insecticide or herbicide to the plants;monitoring the overall characteristic of the plants;thinning the plants;weeding the plants;modifying irrigation of the plants; orfencing the plants.

36. The method of claim 28, wherein determining the characteristic of each of the plants includes:applying, to the aerial image, an artificial intelligence model trained to determine the characteristic of each of the plants.