IDENTIFY OVERFILLED CONTAINERS.
Patent Information
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- HEIL CO
- Filing Date
- 2022-10-19
- Publication Date
- 2026-05-19
AI Technical Summary
Existing garbage collection systems face challenges in identifying overfilled containers, leading to operational inefficiencies and revenue loss due to manual oversight, which can result in overage fees and potential damage to collection mechanisms.
A machine learning model trained on images of containers is used to predict overfilling by preprocessing images to reduce drift and optimizing the model with a validation set, enabling accurate identification of overfilled containers before emptying.
The system efficiently identifies overfilled containers with reduced computational latency, improving accuracy and preventing revenue loss by automating the detection process across large fleets of garbage collection vehicles.
Smart Images

Figure MX434095B0 
Figure MX434095B1
Abstract
Description
IDENTIFY OVERFILLED CONTAINERS PRIORITY CLAIM This application claims the benefit of U.S. Provisional Application Serial No. 63 / 012,895, filed on April 20, 2020. The full contents of the foregoing are incorporated herein by reference. TECHNICAL FIELD The description generally refers to identifying overfilled containers, for example, based on the use of machine learning models. BACKGROUND OF THE INVENTION Identifying overfilled containers is useful in many industries. For example, in the waste management industry, overfilled containers, damaged containers, and lost containers can create complications for waste collection and customer billing. A waste collection company may operate a fleet of collection vehicles that regularly collect waste from various customers' containers and transport it to a processing site. An overfill can occur, for example, when a container is filled to the brim, causing the lid to not close completely. If a customer consistently overfills their container(s), creating an overfill, the waste collection company may lose revenue by collecting more waste than the company agreed to collect from the customer.Furthermore, an overfilled container can lead to operational problems with the mechanism(s) that empty the container into the vehicle. Contracts between the company and its customers have a price, and the containers are sized based on an expected amount of trash to be collected. Consequently, a waste collection company charges an excess fee for an overfilled container. BRIEF DESCRIPTION OF THE INVENTION Among other things, the techniques described herein include a method for receiving a plurality of images obtained from one or more vehicles from one or more containers while the one or more containers are being emptied, the plurality of images comprising an image training set and an image validation set; labeling each image of the plurality of images as including either an overfilled container or a non-overfilled container; preprocessing each image of the plurality of images to reduce deviation from a machine learning model; training, and based on the labeling, the machine learning model that uses the plurality of images;and optimize the machine learning model by performing learning against the validation set, the optimized machine learning model is used to generate a prediction of a new image of a container, the prediction indicating whether the container in the new image was overfilled before the container is emptied again. The method described here has many advantages. For example, using machine learning models to determine which containers were overloaded before emptying can eliminate the need for manual identification. Furthermore, machine learning models allow the back-end server to quickly review large volumes of container data, making this solution effective even when a waste collection company operates a large fleet of RCVs, each equipped with multiple cameras capable of capturing numerous images. This eliminates the need to manually identify overloaded containers, thus preventing scalability issues for waste collection companies.Additionally, machine learning models can be continuously trained based on patterns specific to the waste collection company's clients, enabling them to efficiently identify overflowing containers with reduced computational latency. Furthermore, since image data can be multidimensional, indicating, for example, the time of day the container is emptied, its geographic location, container size, container shape, and / or similar information, the use of machine learning models is effective because these models can be efficiently implemented on multidimensional data.Furthermore, the back-end server improves the accuracy of identifying overloaded containers by preprocessing images before such identification by machine learning models, thereby reducing susceptibility to error associated with conventional machine learning techniques. Other implementations of any of the above include corresponding computer systems, devices, and programs configured to perform the actions of the methods, encoded on computer storage devices. This description also provides a computer-readable storage medium coupled to one or more processors and containing instructions that, when executed by the processor(s), cause the processor(s) to perform operations in accordance with implementations of the methods provided herein. This description further provides a system for implementing the methods provided herein.The system includes one or more processors and a computer-readable storage medium coupled to the one or more processors having instructions stored therein that, when executed by the one or more processors, cause the one or more processors to perform operations in accordance with implementations of the methods provided herein. It is understood that aspects and characteristics conforming to this description may include any combination of the aspects and characteristics described herein. In other words, aspects and characteristics conforming to this description are not limited to the combinations of aspects and characteristics specifically described herein, but also include any combination of the aspects and characteristics provided. Details of one or more implementations of the present description are set forth in the accompanying figures and the description below. Other features and advantages of the present description will be apparent from the description and figures, and from the claims. BRIEF DESCRIPTION OF THE FIGURES Figures 1A and 1B illustrate illustrative systems for identifying container surplus(s) and / or other problem(s), in accordance with implementations of this description. Figure 1C illustrates an illustrative schematic of a garbage collection vehicle (RCV), in accordance with implementations of the present description. Figures 2A to 2D illustrate illustrative user interfaces for identifying container feature(s), in accordance with implementations of this description. Figure 3 illustrates a flowchart of an illustrative process for identifying feature(s), in accordance with implementations of the present description. Figures 4A to 4K illustrate the algorithmic process for implementing machine learning models to identify container surplus(s) and / or other problem(s), in accordance with implementations of this description. Figure 5 illustrates an illustrative computing system, in accordance with implementations of the present description. DETAILED DESCRIPTION OF THE INVENTION rj ihnn / rznz / zi / YiAi Machine learning models (also simply called models) are trained using deep learning techniques on images of containers captured while those containers are being emptied or filled. Different models can be trained for different clients, for example, who may use different types of containers, have different environments, service at different times, etc. A company operating a fleet of vehicles can deploy trained models to automatically identify, using an image captured by a vehicle from an emptying container to a filling container, whether an emptying container is overfilled or a filling container has been overfilled. Overfilled containers (sometimes referred to as overloaded) are those filled beyond a predefined capacity.For example, a garbage collection company that operates many garbage collection vehicles (GCVs) can deploy such models on images of garbage containers as they are being emptied to automatically identify overfilled containers within those images. Identifying overfilled containers can help pinpoint customers who are violating their garbage collection contracts with the company, which in turn can allow the company to charge overfill fees for non-compliance with existing contracts. In another example, a gas or oil supply company that delivers gas or oil to gas stations can deploy such models on images of oil or gas collection containers at various gas stations as they are being filled to determine underfilled or overfilled containers.Identifying underfilled containers can help with accounting and supply chain requirements, while identifying overfilled containers can trigger a timely alert of a potential risk. In another example, a pesticide distribution company could deploy the models described here to determine if pesticide containers have been filled appropriately. The machine learning techniques described here can be implemented on at least one compute processor (e.g., a cloud computing server) and / or at least one hardware accelerator (e.g., an edge processor) coupled to at least one compute processor. In the context of waste collection vehicles, a RCV may include a lifting arm operable to empty a container into a waste holding space of the RCV, at least one sensor arranged to collect sensor data indicating an operational state of the lifting arm (e.g., the lifting arm's operational state when it is activated to empty the container), at least one camera arranged to generate image data of a scene external to the RCV, and an onboard device communicatively coupled to at least one sensor and the at least one camera. The onboard device may analyze the sensor data to detect at least one activation condition corresponding to a particular operational state of the lifting arm (e.g., the activation condition might be rj ihnn / rznz / zi / YiAi: activation / lifting of the lifting arm to empty the container).At least one camera can generate multiple images of different corresponding portions of the container over a period of time that is close to when at least one activation condition is present. The onboard computer can transmit the container images to a back-end server. The back-end server runs machine learning models on the transmitted images (along with other container images that may have been obtained by other RCVs) to determine if the container was overloaded before emptying. If the container is determined to have been overloaded before emptying, the back-end server can initiate a notification (e.g., warning, appointment, or supplemental invoice with additional charges, and / or similar) to a user account associated with the container.Although the description here is focused more on garbage collection, the techniques and modeling described here can be implemented by other companies that collect or carry containers, such as gas or oil dispensing companies, pesticide dispensing companies, or similar. Figure 1A illustrates an illustrative system for identifying container surplus(s) and / or other problem(s) in accordance with implementations of this description. As shown in the examples in Figures 1A and 1B, a vehicle 102 may include any suitable number of body components 104. The vehicle 102 may be a refuse collection vehicle that operates to collect and transport refuse (e.g., waste). The refuse collection vehicle may also be described as a waste collection vehicle or waste truck. The vehicle 102 may be configured to lift containers 130 containing refuse and empty the refuse into a hopper on the vehicle to allow transport of the refuse to a collection site, compaction of the refuse, and / or other refuse management activities.Vehicle 102 can also handle containers in other ways, such as by transporting the containers to another site for emptying. Body components 104 may include various components appropriate to the particular type of vehicle 102. For example, a waste vehicle may be a truck with an automated side loader (ASL). Alternatively, the vehicle may be a front-loading truck, a rear-loading truck, a roll-off truck, or some other type of waste collection vehicle. A vehicle with an ASL may include body components involved in the operation of the ASL, such as arms and / or a fork, as well as other body components such as a pump, tailgate, compactor, and so on. A front-loading vehicle, such as the example shown in Figures 1A to 1C, may include body components such as a pump, tailgate, compactor, grapple, and so on.A rear-loading vehicle may include body components such as a pump, blade, tilter, and so on. A rolling vehicle may include body components such as a pump, hoist, cable, and so on. Body components may also include other types of components that operate to bring waste into a hopper (or other storage area) of a truck, compress and / or dispose of the waste in the hopper, and / or eject the waste from the hopper. The vehicle 102 may include any number of body sensor devices 106 that detect body component(s) and generate sensor data 110 that describe the operation(s) and / or operating status of various body components 104. The body sensor devices 106 are also referred to as sensor devices, or sensors. The sensors may be arranged on or in proximity to body components to monitor the operations of the body components. The sensors may emit signals that include sensor data 110 describing the body component operations, and the signals may vary appropriately based on the particular body component being monitored.In some implementations, sensor 110 data is analyzed, by an in-vehicle computing device and / or by remote computing device(s), to identify the presence of an activation condition based at least partially on the operating state of one or more body components, as further described below. In some implementations, one or more cameras 134 may be mounted on or otherwise present on or within vehicle 102. Each camera 134 may generate image data 124 that includes one or more images of an external scene in proximity to vehicle 102 and / or an image (or images) of an interior scene of vehicle 102. For example, a camera 134 may be mounted on a dashboard of vehicle 102 and facing outward through the windshield to capture image(s) of objects in front of the vehicle. The image data 128 may include a single image (e.g., screenshot), multiple images, and / or a portion (e.g., clip) of video data of any suitable length. In some implementations, one or more cameras 134 are arranged to capture image(s) of a container 130 before, after, and / or during body component operations 104 to empty the container 130 into the vehicle hopper 102.For example, for a front-loading vehicle, camera(s) 136 can be positioned to image objects in front of the vehicle. As another example, for a side-loading vehicle, camera(s) 134 can be positioned to image objects to the side of the vehicle, such as the side mounting the ASL for lifting containers. In some implementations, sensor data and image data can be communicated from the sensors and images, respectively, to an onboard computing device 112 in the vehicle 102. In some cases, the onboard computing device is an under-dash device (UDU), which may also be referred to as the input. Alternatively, the device 112 may be located in some other suitable location within or on the vehicle. The sensor data and / or image data can be communicated from the sensors and / or camera to the onboard computing device 112 over a wired connection (e.g., an internal bus) and / or over a wireless connection. In some implementations, a J1939 bus connects the various sensors and / or cameras to the onboard computing device. In some implementations, the sensors and / or cameras may be incorporated into various body components.Alternatively, the sensors and / or cameras may be separate from the body components. In some implementations, the sensors and / or cameras digitize the signals that communicate sensor data and / or image data before sending the signals to the onboard computing device if the signals are not in a digital format. The onboard computing device 112 may include one or more processors 114 providing computing capability, data storage 116 of any suitable size or format, and network interface controller(s) 118 facilitating communication of device 112 with other device(s) over one or more wired or wireless networks. In some implementations, the analysis of sensor data 110 and / or image data 128 is performed at least partially by the onboard computing device 112, for example, by processes running on the processor(s) 114. For instance, the onboard computing device 112 may run processes that analyze sensor data 110 to detect the presence of an activation condition, such as a lifting arm in a particular position in its lifting cycle to empty a container into the vehicle's hopper. Upon detecting the activation condition, the device 112 may transmit one or more signals 146 to the analysis computing device(s) 120, where such signal(s) 146 may include image data 128 comprising one or more images of the emptied container captured during a period of time close to when the container was emptied.For example, image data 128 may include container image(s) captured before (for example, just before) the container is serviced, to determine if the container was overloaded by analyzing the image(s) before the container was serviced. In some implementations, the onboard computing device 112 transmits signal(s) 146 that include at least a portion of the sensor data 110 and / or image data 128 to the analysis computing device(s) 120, and analysis module(s) 122 running on the device(s) 120 may analyze the sensor data 110 to detect the presence of an activation condition. In some cases, an activation condition may also be based at least partially on a vehicle location 102, as determined through a satellite-based navigation system such as the Global Positioning System (GPS), or through other techniques. In such cases, the on-board computing device 112 may include location sensor device(s) 126, such as GPS receivers or other types of sensors that enable location determination. The location sensor(s) may generate location data 144 that describes a current location of the vehicle 102 at one or more times. The location data 144 may be used, alone or in conjunction with sensor data 110, to determine the presence of an activation condition.For example, an activation condition may be present when the location of vehicle 102 is at, or within a threshold distance of, a predetermined location stored in a container 130 that is to be emptied. Therefore, location data and sensor data can be analyzed on device 112 and / or device(s) 120 to determine the presence of an activation condition. The analysis of sensor data 110 and / or image data 128 on device 112, analysis device(s) 120, or elsewhere, can be performed in real time with respect to the generation of the sensor data, image data, and / or location data. Alternatively, the analysis can be performed periodically (e.g., in a batch analysis process), such as once a day and / or at the end of a particular vehicle's garbage collection route. In the example in Figure 1A, the signal(s) 146, which includes sensor data 110, image data 128, and / or location data 144, is sent to the analysis computing device(s) 120, and analysis module(s) 122 running on the device(s) 120 analyze the data to determine if any overflow is exhibited by container(s) 130 handled by vehicle 102. Such analysis may include determining if an activation condition is present, analyzing image(s) of container(s) 130 captured at a time close to the activation condition, and based on the image analysis, identifying those container(s) 130 that exhibit an overflow. In some implementations, the analysis module(s) 122 may include a classification processor 136, which may also be described as a classifier, a model, an image classifier, or an image classification processor.Processor 134 can be trained, using any suitable technique, to identify images that show a container with an overflow condition. For example, processor 136 can be trained to look for various patterns and / or features within images that indicate the presence or absence of an overflow, such as a lid that is not fully closed, trash visible through an opening between the lid and the container body, and so on. In some implementations, processor 136 can be trained on the basis of a (for example, large) dataset of images that have been labeled as exhibiting overflows or not exhibiting overflows, for example, by an operator performing the imaging.In some implementations, the rj ihnn / rznz / zi / YiAi designations exceeding or not exceeding, which are made by the operator through the monitor application 140, as further described below, can be used as training data for further training or otherwise refining the operations of processor 136. Container feature(s), such as an overflow condition describing one or more containers (130) identified as having overflows at collection time, may be communicated to one or more output computing devices (148) for presentation to multiple users. In some cases, container feature(s) (124) may be communicated with a notification, alert, warning, and / or other type of message to inform the user(s) of the presence of an overflow condition and / or other problem(s) in one or more containers of interest. For example, a container owner, a container user, or another individual responsible for the container may be notified of the overflow condition. In some implementations, one or more actions (138) may be taken based on the determination of an overflow.Such action(s) 138 may include sending the notification(s) that includes the container feature(s) 124 as described above. Action(s) 138 may also include invoicing a responsible party to collect the excess. In the example in Figure IB, the signal(s) 146, which include sensor data 110, image data 128, and / or location data 144, are sent to the output computing device(s) 148, and the image(s) are presented in a UI 142 of a monitor application 140 running on the device(s) 148. In some implementations, the sensor data 110, location data 144, and / or other information is analyzed on device 112 to identify trigger conditions, and the image data 128 that is communicated to and presented on device(s) 148 includes container images captured near a time when the trigger condition is present.For example, one or more images of each container handled by a vehicle on its route can be captured during a predetermined time period before the vehicle's lifting arm passes through a particular point at its container emptying site. The captured image(s) for each of the one or more containers can be communicated to device(s) 148 and displayed in the UI 142 of the monitor application 140. An operator can examine the images using the monitor application 140 and use an application control to flag any particular image(s) that show an overflow. The flagged container(s) can be added to container feature(s) 124, which is communicated to various parties, and in some cases, the overflow frame can trigger action(s) 138 to be performed, as described above.Container 124 feature(s) can be included in reports that were generated and sent to one or more parties. A large amount of sensor data and image data can be generated by the sensors and cameras, respectively, and received by the onboard computing device 112. In some implementations, a suitable data compression technique is used to compress the sensor data, image data, location data, and / or other information before it is communicated on signal(s) 146, over the network(s), to the remote device(s) 120 and / or 148 for further analysis. In some implementations, the compression is lossless, and no filtering is performed on the data generated and communicated by the onboard computing device and then communicated to the remote device(s). Consequently, such implementations avoid the risk of losing potentially relevant data through filtering.Sensors can be provided on the vehicle body to evaluate cycles and / or other parameters of various body components. For example, sensors can measure the hydraulic pressure of various hydraulic components and / or the pneumatic pressure of pneumatic components. Sensors can also detect and / or measure the specific position and / or operating status of body components such as the top door of a garbage truck, a Curotto can® attached to a garbage truck, a lifting arm, a garbage compression mechanism, a tailgate, and so on, to detect events such as a lifting arm cycle, a packing cycle, a tailgate opening or closing event, a rejection event, a tailgate closing event, and / or other body component operations.Various body component operations, body component positions, and / or body component states can be designed as trigger conditions that activate image capture, communication, and / or analysis to identify surpluses. In some implementations, a vehicle includes a body controller that manages and / or monitors various vehicle body components. A vehicle body controller can connect to multiple sensors on the vehicle body. The body controller can transmit one or more signals over the 11939 network, or another cable, when it detects a change in the state of any of the sensors. In some implementations, the body controller can transmit signal(s) over a wireless network using any suitable communication protocol. These signals from the body controller can be received by the onboard computing device that is monitoring the 11939 network. In some implementations, the onboard computing device has a GPS chip or other location-determination device that records the vehicle's location every second or at other intervals.The onboard computing device can identify body component signals (as distinguished from vehicle signals) and transmit them, along with location data (e.g., GPS) and / or image data, to the remote computing device(s) 120 and / or 148, rj ihnn / rznz / zi / YiAi, for example, via a cellular connection, Wi-Fi network, or other wireless connection, or via a serial line, Ethernet cable, or other wired connection. Sensor data 110 can be analyzed, either on device 112 or elsewhere, to identify specific body controller signals indicating that a container has been serviced (e.g., forks moved or gripper moved, etc.). In some implementations, the signal can also be cross-referenced with location data to pinpoint where the signal was captured (e.g., geographically). The signal can then be compared to a dataset of known container locations to determine an activation condition with greater confidence than using the sensor data alone. For example, a lift arm event can be correlated with location data showing that the vehicle is at a container location to infer that an activation condition is present and that a container is being handled.The container image(s), captured during or before the period when the container is handled (e.g., vehicle-based), can be analyzed for surpluses. In some implementations, the on-board computing device is a multipurpose hardware platform. The device may include a UDU (Gate) and / or a Window Unit (WU) (e.g., cameras) for recording vehicle video and / or audio operational activities. The hardware subcomponents of the on-board computing device may include, but are not limited to, one or more of the following: a CPU, memory or data storage unit, a CAN interface, a CAN chipset, NICs such as an Ethernet port, USB port, serial port, I2c line(s), and so on, ports, and / or a wireless chipset, a GPS chipset, a real-time clock, a micro SD card, an audio-video encoder and decoder chipset, and / or external CAN cabling for I / O.The device may also include temperature sensors, battery voltage and power sensors, motion sensors, an accelerometer, a gyroscope, an altimeter, a GPS chipset with or without dead reckoning, and / or a digital CAN interface (DCI). The DCI hardware subcomponent may include the following: CPU, memory, controller area network (CAN) interface, CAN chipset, Ethernet port, USB port, serial port, I2c lines, I / O ports, wireless chipset, GPS chipset, real-time clock, and external cabling for CAN and / or I / O.In some implementations, the onboard computing device is a smartphone, tablet computer, and / or other portable computing device that includes components for recording video and / or audio data, processing capability, transceiver(s) for network communications, and / or sensors for collecting environmental data, telematics data, and so on. The onboard computing device can determine the speed and / or location of the vehicle using various techniques. CAN_SPEED can be determined using the CAN interface and J1939 or J1962, which reads the wheel speed indicator. Wheel speed can be generated by the vehicle's ECU. The vehicle's ECU may have hardware connected to a wheel axle and can measure rotation with a sensor. GPS_SPEED can provide GPS data and be linked to a minimum of three satellites, with a fourth satellite used to determine altitude or elevation. The vehicle's actual coordinates on the map can be plotted and / or verified to determine the vehicle's altitude. SENSOR_SPEED can be provided using motion sensors, such as an accelerometer, gyroscope, and so on. This hardware component can sample at high frequencies and can be used to measure delta, acceleration, and derive speed from the measurements.Other speed sensors can also be used. LOCATION_WITH_NO_GPS can be provided when using the GPS chipset with dead reckoning, and actual vehicle location and movement can be derived using a combination of SENSOR_SPEED and CAN_SPEED. Even if GPS is unavailable, some systems can accurately determine the vehicle's location based on dead reckoning. Figure 1C illustrates an illustrative schematic of a garbage collection vehicle, in accordance with implementations of this description. As shown in the example in Figure 1C, a vehicle 102 may include any suitable number and type of body components 104 in accordance with the design and / or purpose of the vehicle 102. For example, a vehicle 102 may include body components 104 that include, but are not limited to: a lifting arm 104(1), a gripper mechanism 104(2), a top cover or hopper lid 104(3), a rear door or tailgate 104(4), and a hopper 104(5) for retaining garbage during transport. One or more sensors 106 may be positioned to determine the status and / or detect the operation of the body components 104.In the example shown, the lifting arm 104(1) includes a sensor 106 arranged to detect the position of the arm 104(1), such as during its cycle 132 to lift a container 130 and empty it into the hopper 104(5). The vehicle 102 may also include one or more cameras 134 that capture images in close proximity to the vehicle 102 and / or, in some cases, from inside the vehicle. In the example shown, one camera 134 is positioned to view objects in front of the vehicle 102, such as container(s) 130 being handled by the front-loading vehicle shown in the example. The camera(s) 134 may also be positioned in other positions and / or orientations. For example, a side-loading vehicle 102 (e.g., with an ASL) may have a camera 134 fixed to its side to capture image(s) of container(s) being processed when using the side-loading mechanism. Sensor data can be analyzed to determine the activation condition, which indicates that a container is being serviced, has been serviced, or is about to be serviced. Based on the activation condition, one or more images captured by the camera(s) can be analyzed to look for any excess. For example, an activation condition could be a particular point in the lifting arm cycle for raising a container and emptying it into the hopper. As another example, an activation condition could be a top lid cycle (e.g., lid to hopper) indicating that the top lid is being opened to empty a container into the hopper. Another example could be a gripper cycle for holding a container to empty it into the hopper. The activation condition can be used to determine a time, or time period, within the image(s) to be analyzed.For example, the time period could be a predetermined offset before the activation condition, so the analyzed images are those captured just before the container is emptied into the hopper. In a particular example, the analyzed images might include images captured between 5 and 10 seconds before the end of the lifting arm's cycle to raise a container and empty it into the hopper, or 5 to 10 seconds before the activation of a proximity switch sensor that indicates when the lifting arm is 75% through its movement to empty a container into the hopper. Therefore, the analyzed images were those taken immediately before a service event in which a container was emptied into the hopper of a garbage truck. In some implementations, a predefined offset, which is a time-based offset as described above, can be used, for example, to analyze images captured a particular time period (e.g., X seconds) before the trigger condition. Alternatively, or in addition to using a time-based offset, implementations can employ a distance-based offset in the analysis. For example, the analyzed image(s) might be images captured at a particular distance (e.g., Y meters (feet)) from the container to be emptied. In such examples, location data from the location sensor device(s) 126 can be used to determine how far back in time and to obtain the image(s) taken at the threshold distance from the container (e.g., 2.4 meters (8 feet) in front of the container).In other words, the default value can be the distance between the container and the vehicle before the trigger condition. Using location data, a calculation can be performed to determine how many seconds to go back (for example, since when the container was emptied) to identify the image(s) for which the distance between the vehicle and the container was the specified default distance. In some implementations, sensor data can be used in conjunction with location data to determine the presence of a trigger condition that defines a time period for analyzing images. For example, the detection of a lifting arm passing through the 75% point in its cycle, along with the determination that the vehicle's current GPS location corresponds to a known location of a container to be serviced, can be used as a trigger condition to determine one or more images for analysis. The image(s) can be generated with a date stamp indicating the date and / or time they were captured. The image(s) can also include metadata describing which camera generated each image. The date stamp and / or other metadata can be used to determine which image(s) to analyze to identify any overages. In some implementations, the onboard computing device 112 (e.g., UDU) collects sensor data 110 continuously and / or periodically (e.g., every second, every 5 seconds, etc.), and the data is analyzed to determine if an activation condition is present. Image data 128 can also be generated and received continuously, and a time window of image data can be retrieved and analyzed to identify any overshoots in response to detecting an activation condition. For example, the 5-second image time window before the activation condition and up to the activation condition can be analyzed to look for an overshoot. In some cases, the platform knows when a particular service event occurred, for example, based on sensor data 110 and / or the vehicle's location. The service event can then be correlated with the image data being generated by the cameras.For example, a portion of the image data (including one or more images) between a time period before or including the time of the service event (for example, 12 seconds before emptying a container) can be analyzed to capture an image(s) of the container while it is still on the ground before being emptied. The image data can include any number of still images. In some implementations, the image data can include video data, such that the image(s) are framed within the video data. In some implementations, the determination of an activation condition can also be based on the vehicle's location and / or movement. For example, an activation condition can be determined based on the vehicle moving below a threshold speed (or decelerating to below a threshold speed) prior to sensor data indicating a particular operating state of body components, and / or when the vehicle is within a threshold distance (e.g., within 3.04 to 4.57 meters (10 to 15 feet)) of a known location of a container to be handled. One or more images can be retrieved that visualize the container from that moment until a time when a container is emptied (e.g., as determined based on the sensor data).Vehicle speed, acceleration (or deceleration), and / or location may be based at least partially on information received from on-board vehicle systems, such as a GPS receiver and / or telematics sensor(s) that describe the vehicle's current speed, orientation, and / or location at one or more times. In some implementations, the image(s) can be automatically captured by the cameras and stored (for example, for a period of time) in storage 116 of device 112. The particular image(s) from within the time period of interest (for example, before the CAN is emptied), based on the presence of the activation condition, can be automatically retrieved and analyzed in response to detecting the activation condition. In some implementations, the generation and / or retrieval of image(s) for analysis can be based at least partially on a command received from an operator. For example, a driver or other vehicle personnel present can press a button, or otherwise issue a command, to device 112 to request image capture when the vehicle is within a suitable distance of the container to be handled. In some implementations, the data to be uploaded to device(s) 120 and / or device 148 can be packaged, in signal(s) 146, into data groups (e.g., telemetry) every 5 to 10 minutes. This data set can be compressed and / or cryptographically encoded and transmitted to the remote device(s) over a suitable network, such as a wireless cell network. In some implementations, the uploaded data includes the relevant data from one or more particular container handling segments.For example, sensor data and / or location data can be analyzed on device 112 to determine the presence of an activation condition, and the specific image(s) (and / or video data) for the appropriate time period based on the activation condition can be uploaded for analysis, if the activation condition can be uploaded along with the corresponding time period of telemetry data, sensor data, and / or location data. In some cases, data can be uploaded in real time with respect to container handling, or data can be uploaded in batches periodically. Data uploading may be delayed until a suitable network connection is available between the onboard computing device 112 and the remote device(s) 120 and / or 148. In some implementations, at least a portion of the analysis being described here as being performed on the analysis computing device(s) 120 and / or the output device(s) 148 may be performed by the onboard computing device 112 instead of or in addition to being performed on the analysis computing device(s) 120 and / or the output device(s) 148. Figures 2A through 2D illustrate sample UIs for identifying container surpluses and / or other problem(s), in accordance with implementations of this description. In the example in Figure 2A, application 140 is presenting UI 142 for image review by an operator. The UI may include a control 202 to allow the operator to select the review type, such as a review to identify container surpluses, as shown in the example. Other review types may include container image review to look for containers that are damaged, improperly positioned, or otherwise unsuitable for waste collection handling.The UI can also include controls 204, 206, and / or 208 to filter images based on a segment of an organization (e.g., a particular city or other area), the specific vehicle that generated the image data, and / or the date (or other time period) when the images were generated. A 210 grid can display multiple images captured by cameras on one or more vehicles during the route of the vehicle(s) collecting trash from containers. The operator can select one or more of the images to indicate whether an overage is present, if the review type is Overage. For other review types, selecting an image can indicate that the image exhibits the problem being reviewed, such as repair issues, improperly placed containers, and so on. In some implementations, clicking on one of the images causes the UI to display a larger view of the image and / or more detail regarding the handling of the particular container shown in the image. For example, as shown in Figure 2B, the UI might display a larger view of image 214, a map 216 showing the container's location (or the vehicle's location when the image was captured), and a graph 218 showing a characteristic of the vehicle over time, during the period leading up to the container handling. The characteristic displayed could be vehicle speed, as in the example shown, acceleration / deceleration, or some other characteristic. The graph might also show the point in time when the trigger condition was present (e.g., labeled Event in this example). In some implementations, as shown in the example in Figure 2C, the UI may present in the detailed view a list of checkboxes or other suitable controls to show the operator which conditions were exhibited by the container shown in the image, such as an overloaded container (e.g., excess), a damaged container, a blocked container, a need for maintenance, a waste problem (e.g., lack of adequate handling space), and so on. The UI can also allow the operator to request the generation of a report summarizing the results of reviewing multiple container images. As shown in Figure 2D, the report can include a list of various events (e.g., images) that were analyzed. For each event, the report can list the event ID, review type, segment, vehicle, data and / or time (e.g., image registration date), the reviewing operator, and a link to a more detailed presentation regarding the event. The report can also include additional and / or different information as appropriate. In some implementations, the analysis of image data to identify excesses (or other problems), using the review application 140 and / or the processor 136, can be performed in real time with respect to image generation (for example, during the vehicle's route to collect waste from the containers). In other implementations, the analysis can be performed at some time after the image(s) were generated and / or after the vehicle has completed its route. As used here, a real-time process or operation describes a process or operation performed in response to the detection of an activation condition (e.g., events). The process is performed in real time without any unnecessary delay after the activation condition, other than the delay incurred due to limitations (e.g., speed, bandwidth) of any networks used, data transfer between system components, memory access speed, processing speed, and / or computing resources. A real-time process may be performed within a short period of time after the detection of the activation condition, and / or may be performed at least partially concurrently with the activation condition. An activation condition may be the receipt of a communication, the detection of a particular system state, and / or other types of events.In some cases, a real-time process is performed within the same execution path, such as within the same process or sequence, like the activation condition. In other cases, a real-time process is performed by a different sequence process that is created or requested by a request that detects the activation condition. A real-time process can also be described as synchronous with respect to the activation condition. As described here, the trigger condition may be one or more of the following: a particular operating state of a body component (e.g., a lift arm position and its cycles), a vehicle speed (e.g., speed and / or direction of travel), vehicle acceleration or deceleration, a vehicle location, and / or other criteria. The presence of the trigger condition may lead to the collection and / or analysis of image data to identify surplus or other evidence present in one or more containers. Application 14 can generate a report of excess or other problems. The application can also send signals that trigger actions to be taken, and / or perform the same action(s). Such action(s) may include a charge against an entity responsible for overloading the container (e.g., an excess fee). The action(s) may also include sending notifications to such entities and / or individuals responsible for managing the refuse collection vehicles, to notify the recipients of identified excess or other conditions exhibited by containers. The notifications may also include recommendations to correct the identified problems in the future, such as a recommendation to request additional container(s) and / or larger container(s) to handle excess waste, and / or more frequent waste pickups.Application 130 can provide additional information to notification recipients to demonstrate the identified problem, including image(s) of the (e.g., overloaded) container(s), time, date, and / or location information, and so on. Figure 3 illustrates a flowchart of an illustrative process for identifying container feature(s), such as surplus(s) and / or other problem(s), in accordance with implementations of this description. Process operations may be performed by one or more of the analysis module(s) 122, the classification processor 136, the monitor application 140, the UI 142, and / or other software module(s) running on the onboard computing device 112, the analysis computing device(s) 120, the output device(s) 148, and / or elsewhere. Sensor data (302) is received and analyzed to determine (304) the operating status and / or operation of one or more vehicle body components. The presence of an activation condition is detected (306) based at least partially on a particular operating status of the body component(s), such as the position of a lifting arm at a particular point in its location for emptying a container, the status of a clamp attached to a container, and / or the opening of a hopper lid to receive waste emptied into the hopper. As described above, the activation condition may also be based at least partially on other information, such as the vehicle's speed, deceleration, and / or location prior to handling a container.An image(s) is received (308) showing at least a portion of a container at or near the time of the trigger condition, such as a period of time (for example, 10 to 15 seconds) before the trigger condition. Based on the image(s), a determination is made (310) and the container exhibits particular feature(s), such as an overflow. As described above, the determination can be made by an image classification processor (for example, through model application based on my), and / or through an operator performing the image(s) in application 140. One or more sections can be performed (312) based on the identified feature(s), such as an overflow and / or other problem(s). Figure 4A illustrates a machine learning algorithm implemented to identify container overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of container 130 and / or similar containers, which can then deploy the trained machine learning model to generate interferences indicating whether container 130 is overfilled or other problems exist. Steps 402A to 410B describe the training phase of the machine learning model, and step 412A describes the deployment phase of the machine learning model trained to generate interfaces. Computing device 120 can receive container images from RCV 102, as well as other RCVs, on port 402A. The received images can be divided into a first set of images, which can be called a training set, and a second set of images, which can be called a validation set (or a test set). The training set is a group of sample inputs that will be fed into the machine learning model (e.g., a neural network model) to train the model, and the validation set is a group of corresponding inputs and outputs used to determine the model's accuracy during training. Although the images are described as being received from multiple RCVs, in other implementations, the images may be received from a single RCV (e.g., RCV 102). In some implementations, the received images can only be container images from containers that are similar in one or more characteristics to container 130. These characteristics may include the shape of container 130, the container's geographic location, the type of building container 130 is in, any other characteristics, and / or any combination thereof. The images can be in any format, such as JPEG, TIFF, GIF, BMP, PNG, any other image format, and / or any combination thereof. Each received image can be classified, in 404A, into one of two classes: (1) image that includes an overfilled container, or (2) image that does not include an overfilled container. This classification is also referred to as binary classification. In one implementation, the labeling of each image can be performed manually. In alternative implementations, the labeling of each image can be performed automatically by the computing device 120.For example, Computing Device 120 can implement an image processing algorithm to detect the edges of the lid and base of a container configured to be adjacent to the lid of an empty container that is fully closed. If the lid is farther from the nearest point of the base than a predetermined threshold, Computing Device 120 can assume that such an image includes an overfilled container and classify the image accordingly. Edge detection can work by detecting discontinuities in image transmission and can include any edge detection algorithm, such as Sobel, Canny, Prewitt, Roberts, and confusing logic models.Although edge detection is described as an image processing technique for rj ihnn / rznz / zi / YiAi to determine if the container lid is open, and other implementations, image processing may additionally or alternatively include other techniques such as corner detection, edge detection, bubble detection, and / or similar. Computing device 120 can preprocess each image in 406A to reduce system deviation (i.e., deviation from the machine learning model). As the received images are labeled in 404, the actual output from the sample inputs (i.e., the received images) is known. The machine learning model, however, may produce a different output. The difference between the known correct output for the sample inputs and the actual output of the machine learning model is called a training error. The purpose of training the machine learning model is to reduce the training error until the model produces an accurate prediction for the training set. A high deviation means that the model is not fitting the training set well (i.e., the model is not producing a sufficiently accurate error for the training set).Image preprocessing reduces this bias so that the model fits well within the training set (i.e., the model produces a sufficiently accurate prediction for the training set). In some examples, preprocessing steps include rotating, tilting, zooming, cropping, and / or similar actions on the received images, so that the machine learning model is less biased toward the type or contents of the containers. Rotating, tilting, zooming, cropping, and / or similar actions on the received images can make the machine learning model less biased toward the type or contents of the containers because such actions train the model on wider variations of contents (e.g., a tilted or rotated trash can under varying photographic conditions due to different environmental factors) in the images. Computing device 120 can train the machine learning model in 408A or use the processed images within the training set. Training is the process of learning (i.e., determining) weights and deviation values that the machine learning model should apply when making inferences while minimizing error (i.e., imprecision) when making predictions. Computing Device 120 can adjust (i.e., improve the accuracy of) the machine learning model parameters trained on the validation set in 410A. Such adjustment can also be referred to as machine learning model optimization. The adjustment (or optimization) can implement various optimization algorithms, such as gradient descent, stochastic gradient descent, minibatch gradient descent, momentum, adaptive momentum estimation (also referred to as Adam), and / or similar algorithms. Computing Device 120 can implement an rj ihnn / rznz / zi / YiAi algorithm based on the computational aspects (e.g., architecture and computational writing) of Computing Device 120. The gradient descent algorithm advantageously involves simple computations and is easy to implement and understand.The stochastic gradient descent algorithm advantageously involves frequent updates of model parameters, thus providing coverage and reducing processing time, and requires less memory since there is no need to store loss function values. The minibatch gradient descent algorithm advantageously updates model parameters frequently, has less variation, and requires a moderate amount of memory. The momentum algorithm advantageously reduces oscillations and high parameter variation, and converges faster than gradient descent. The Adam algorithm advantageously is fast and converges quickly, rectifies the vanishing learning rate, and has high variation. In this way, during the training phase, a known dataset is fed into an untrained machine learning model (e.g., an untrained neural network). The results are compared to known results from the dataset, and the model re-evaluates the error value and updates the weight of the dataset in the neural network layers based on the accuracy of the value. This re-evaluation advantageously adjusts the neural network to improve the performance of the specific task—in this case, the classification task of classifying an image as including or not including an overloaded container—that the neural network is learning. Computing device 120 can make predictions (also known as inferences) on new images (for example, one or more current images taken by an RCV 102) regarding whether container 130 in the new images is overloaded. Unlike the training phase, the deployment phase does not re-evaluate or adjust the neural network layers based on the results. Instead, the deployment applies knowledge from the trained neural network model and uses that model to predict whether container 130 is overloaded. Therefore, when a new set of one or more images of container 130 is fed into the trained neural network, the neural network model sends a prediction of whether container 130 is overloaded based on the neural network's predictive accuracy. Figure 4B illustrates another machine learning algorithm implemented to identify container overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of container 130 and / or similar containers, and can then deploy the trained machine learning model to generate inferences indicating whether container 130 is overfilled or other problems exist. rj ihnn / rznz / zi / YiAi Steps 402B to 404B describe the training phase of the machine learning model, and step 4016B describes the deployment phase of the machine learning model trained to generate inferences. Steps 402B to 406B may be the same as, or similar to, the respective aspects of steps 402A to 406A discussed earlier. The computing device can perform object detection on each image in 408B to identify the container. The computing device 120 can extract the container from each image in 410B. Object detection and extraction can be performed by image processing algorithms that use object detection to identify the container in the image and then carry the identified container. In some implementations, object detection can be complemented by other image processing techniques, such as edge detection, corner detection, groove detection, bubble detection, and / or similar techniques, to immediately identify the container in each image. The computing device 120 can train, in 412B, the machine learning classifier model on the sliced image training set. As noted earlier, training is the process of learning (i.e., determining) weights and deviation values that the machine learning model should apply when making inferences while minimizing error (i.e., imprecision) when making predictions. Steps 414B and 416B are the same as, or similar to, steps 410A and 412A discussed earlier, respectively. Figure 4C illustrates another machine learning algorithm implemented to identify surplus and other problem(s), in accordance with implementations of the present description.Computing device 120 can first train the machine learning model using various images of container 130 and / or similar containers, and then deploy the trained machine learning model to generate inferences indicating whether container 130 is overfilled or if there are no other problems. Steps 402C through 414C describe the training phase of the machine learning model, and step 416C describes the deployment phase of the trained machine learning model to generate inferences. Steps 402C through 406C and 412C through 416C may be the same as or similar to respective aspects of steps 402B through 406B and 412B through 416B discussed earlier. In steps 408C and 410C, 40 to 60% of the container is cut off instead of the entire container, as used in steps 408B and 410B. Aside from this distinction, steps 408C and 410C are the same as, or similar to, steps 408B and 410B. The 40 to 60% cut-off is appropriate because this proportion of the container shows if the lid is partially open, which can indicate that the container is overfilled. Figure 4D illustrates another machine learning algorithm implemented to identify bin overflows and / or other problems, in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 402D to 414D describe the training phase of the machine learning model, and step 416D describes the deployment phase of the trained machine learning model to generate inferences. Steps 402D and 410D to 414D may be the same as or similar to respective aspects of corresponding steps discussed earlier. The 120 computing device can preprocess images in 404D to extract (i.e., determine) hue saturation values (HSV) from each image. Hue represents color, saturation represents the amount to which the respective color is mixed with white, and value represents the amount to which the respective color is mixed with black. Determining HSV is advantageous because it allows for easier identification of objects, such as container 130, in images obtained under various weather conditions, such as day, night, rain, snow, or any other weather condition. Image preprocessing can involve transforming image data from red-green-blue (RGB) format to HSV format. The 120 computing device can divide HSV images into separate classes in 406D, such as those taken at night versus those taken during the day, based on the HSV data for each image. In other implementations where the number of images is small (e.g., less than 100), this division can be performed manually. The 120 computing device can assign, in 408D, the images to four classes: overfilled at night, overfilled during the day, not overfilled at night, and not overfilled during the day. These four classes will be used to train the machine learning classifier model. Once the machine learning model has been trained (according to steps 410D to 414D) and optimized, the computing device 120 can receive an input regarding the time when the container was emptied by RCV, and then, based on that input, infer the time of day (i.e., night versus day) and generate, in 416D and based on the inferred time of day, a prediction of whether a new image stream includes an overfilled container. This can also be referred to as consolidation, in 416D, of predictions back to two classes while predicting new images. Figure 4E illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or if other problems exist. Steps 402E to 414E describe the training phase of the machine learning model, and step 416E describes the deployment phase of the trained machine learning model to generate inferences. Steps 402E to 416E are similar to steps 402D to 416E, except that in 412E a separate day-versus-night model is trained based on a training set.Separate training models for day and night can be advantageous since images obtained during the day can differ from those obtained at night. For example, images taken at night may have unique characteristics, such as headlight glare and a darker background, that are not present or noticeable in images taken during the day. Figure 4F illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 402F to 414F describe the training phase of the machine learning model, and step 416F describes the deployment phase of the trained machine learning model to generate inferences. Steps 402F and 410F to 416F are similar to some of the steps observed earlier. Computing device 120 can preprocess each image in 404F by extracting (for example, determining) the registration date, which indicates when the image was acquired by the RCV. Computing device 120 can then divide the images into separate classes in 406F based on the registration dates. In one example, the number of classes might be eight. Although eight classes are described, other implementations may divide the images into any other number of classes. Computing device 120 can then assign labels to eight classes (or any other number of classes as described above) in 408F based on the image registration dates. Other steps are similar to those described above. In another implementation, the division in 406F and / or the assignment in 408F can be performed manually when the number of images is small (for example, less than 100). Figure 4G illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins rj ihnn / rznz / zi / YiAi, and can then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 402G to 414G describe the training phase of the machine learning model, and step 416G describes the deployment phase of the trained machine learning model to generate inferences.Steps 402G to 416G are similar to the steps in Figure 4F, except that the preprocessing in 404G division in 406G is associated with the geographic location where each image is captured by the corresponding RCV (as opposed to being associated with the date of registration information for each image, as seen in Figure 4F). Figure 4H illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 402H through 414H describe the training phase of the machine learning model, and step 416H describes the deployment phase of the trained machine learning model to generate inferences. Several aspects of steps 402H through 416H are similar to the steps observed earlier.In this algorithm, the 404H preprocessing of an image sequence, or video stream, from a particular survey location is to train the classifier to better detect if the container is overfilled as the RCV approaches it. An example of eight different classes of 406H and 408H steps might be: (1) Overfill images belonging to images clicked between (12 am - 8 am) (2) Overfill images belonging to images clicked between (8 am - 2 pm) (3) Overfill images belonging to images clicked between (2 am - 7 pm) (4) Overfill images belonging to images clicked between (7 am - 12 am) (5) Non-overfill images belonging to images clicked between (12 am - 8 am) (6) Non-overfill images belonging to images clicked between (8 am - 2 pm) (7) Non-overfill images belonging to images clicked between (2 pm - 7 pm) rj ihnn / rznz / zi / YiAi (8) Non-overfill images belonging to images clicked between (7 am - 12 am) Figure 41 illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and can then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 4021 to 4121 describe the training phase of the machine learning model, and step 4141 describes the deployment phase of the trained machine learning model to generate inferences. Several aspects of steps 4021 to 4141 are similar to the steps observed earlier. The background objects indicated in 4081 can include humans, hats, cleaners, trees, and the like.Background subjects can be covered by using one or more techniques, such as layer masking, fragment masking, alpha channel masking, and any other masking techniques, and / or any combination thereof. Figure 41 illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 4021 to 4111 describe the training phase of the machine learning model, and step 4141 describes the deployment phase of the trained machine learning model to generate inferences. Several aspects of steps 4021 to 4141 are similar to the steps observed earlier. The preprocessing in 4041 to remove glare can be performed using histogram matching techniques.Histogram matching is a technique for adjusting image intensities to vary contrast. Figure 4K illustrates another machine learning algorithm implemented to identify bin overflow and / or other problem(s), in accordance with implementations of the present description. Computing device 120 can first train the machine learning model using various images of bin 130 and / or similar bins, and can then deploy the trained machine learning model to generate inferences indicating whether bin 130 is overfilled or other problems exist. Steps 402K to 414K describe the training phase of the machine learning model, and step 416H describes the training phase of the machine learning model trained to generate inferences. Several aspects of steps 402K to 416K are similar to the steps described above. In this algorithm, the moving RCV (Remote Control Vehicle) decelerating in front of container 130 will record a video, which may include a sequence of images, preprocessed at 406K. In some implementations, the image sequence may be a video stream. Training at 408K on sampled sequences of such images, at different resolutions, can allow for better recognition of the type, depth, and shape of objects in the image. In the case of an overfilled container, training on an image sequence allows for improved accuracy in identifying the container even when it is overfilled, at different resolutions, and in determining whether the container is overfilled. This reduces the payload on the classification model by feeding it a more precise selection frame (e.g., a cropped image). In some implementations, the crop can be as much as 40 to 60% of the container, as described above. The machine learning techniques described here can be implemented on at least one compute processor (e.g., a cloud computing server) and / or at least one hardware accelerator (e.g., an edge processor) coupled to that compute processor. Although the machine learning techniques described above have focused on garbage collection, in other implementations, the techniques and modeling described here can be implemented by other companies that collect or fill containers, such as gas or oil dispensing companies, pesticide dispensing companies, or similar businesses. For example, a gas or oil dispensing company that supplies gas or oil to gas stations can deploy models trained on images of oil or gas collection containers to infer whether a particular oil or gas container (e.g., current or most recent) is underfilled or overfilled.Identifying underfilled containers can help with supply chain accounting requirements, while identifying overfilled containers can trigger a timely alert of a potential hazard. In another example, a pesticide distribution company could deploy trained models on images of pesticide containers to determine whether a particular container (e.g., current or newer) is underfilled or overfilled. In additional or alternative implementations, machine learning models can be trained and used to determine, at a site where the vehicle is emptying or filling a container, any obstructions (e.g., objects, plants, humans, construction, vehicles and / or any other obstruction), safety issues (e.g., physical, environmental, etc.), anything that could affect a driver's ability to promptly perform the necessary areas, and / or similar issues within a predetermined average time window. rj ihnn / rznz / zi / YiAi In some implementations, machine learning models can be trained and used to determine, during a vehicle loading or unloading process, any unusual or unexpected occurrences during the emptying or filling process (e.g., expected routine parameters outside of operator performance, an accidental hose disconnection, spillage, and / or similar when the vehicle is filling gas or oil containers at gas stations). In some implementations, training machine learning models may involve assigning a site where a vehicle fills or empties a container. During the deployment phase, on all future site visits by a vehicle, the site map can be compared to a map generated during the container's emptying or filling. This comparison can then be used to determine if any inappropriate elements (e.g., one or more inappropriate objects, inappropriate processes, and / or similar factors) occurred during the emptying or filling process. In some implementations, the training phase may also include modeling based on the type of product (e.g., bevel, high-grade gasoline, low-grade gasoline, etc.) used to fill the container, so that the deployment phase may involve models specific to the type of product being emptied or filled. Figure 5 illustrates an illustrative computing system, in accordance with implementations of the present description. System 500 can be used for any of the operations described with respect to various implementations discussed herein. For example, System 500 can be included, at least in part, in one or more of the onboard computing device 112, the analysis computing device(s) 120, the output device(s) 148, and / or other computing device(s) or system(s) described herein. The 500 system may include one or more 510 processors, a 520 memory, one or more 530 storage devices, and one or more 550 input / output (I / O) devices controllable through one or more 540 I / O interfaces. The various 510, 520, 530, 540, or 550 components may be interconnected through at least one 560 system bus, which may allow data transfer between the various 500 system modules and components. The 510 processor(s) can be configured to process instructions for execution within the 500 system. The 510 processor(s) can include single-sequence processor(s), multi-sequence processor(s), or both. The 510 processor(s) can be configured to process instructions stored in memory 520 or on storage device(s) 530. For example, the 510 processor(s) can execute instructions for the various software module(s) described herein. The 510 processor(s) can include hardware-based processor(s), each comprising one or more cores. The 510 processor(s) can include general-purpose processor(s), special-purpose processor(s), or both. Memory 520 can store information within System 500. In some implementations, memory 520 includes one or more computer-readable media. Memory 520 can include any number of volatile memory units, any number of non-volatile memory units, or both volatile and non-volatile memory units. Memory 520 can include read-only memory, random-access memory, or both. In some examples, memory 520 can be used as active or physical memory by one or more execution software modules. The 530 storage device(s) can be configured to provide mass (for example, persistent) storage for the 500 system. In some implementations, the 520 storage device(s) can include one or more computer-readable media. For example, the 530 storage device(s) can include a floppy disk drive, a hard disk drive, an optical disk drive, or a tape drive. The 530 storage device(s) can include read-only memory, random-access memory, or both. The 530 storage device(s) can include one or more internal hard drives, external hard drives, or removable drives. One or both of the memory 520 or storage device(s) 530 may include one or more computer-readable storage media (CRSMs). CRSMs may include one or more of an electronic storage medium, a magnetic storage medium, an optical storage medium, a magneto-optical storage medium, a quantum storage medium, a mechanical computer storage medium, and so on. CRSMs may provide computer-readable instruction storage that describes data structures, processes, applications, programs, other modules, or other data for the operation of the system 500. In some implementations, CRSMs may include data storage that provides computer-readable instruction storage or other information in a non-transient format.The CRSMs may be incorporated into the System 500 or external to the System 500. The CRSMs may include read-only memory, random-access memory, or both. One or more CRSMs suitable for tangibly representing computer program instructions and data may include any type of non-volatile memory, including but not limited to: semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. In some examples, the 510 processor(s) and 520 memory may be supplemented by, or incorporated into, one or more application-specific integrated circuits (ASICs). The System 500 can include one or more System 550 I / O devices. The System 550 I / O device(s) can include one or more input devices such as a keyboard, mouse, pen, game controller, touch input device, audio input device (e.g., microphone), gesture input device, optical input device, image or video capture device (e.g., camera), or other devices. In some examples, the System 550 I / O device(s) can also include one or more output devices such as a display, LED, audio output device (e.g., speaker), printer, optical output device, and so on. The System 550 I / O device(s) can be physically incorporated into one or more System 500 computing devices, or they can be external to one or more System 500 computing devices. The 500 system may include one or more 540 I / O interfaces to allow 500 system components or modules to control, interconnect with, or otherwise communicate with the 550 I / O device(s). The 540 I / O interface(s) may allow information to be transferred into or out of the 500 system, or between 500 system components, via serial communication, parallel communication, or other communication types. For example, the 540 I / O interface(s) may conform to a version of the RS-232 standard for serial ports, or to a version of the IEEE 1284 standard for parallel ports. As another example, the 540 I / O interface(s) may be configured to provide a connection over a Universal Serial Bus (USB) or Ethernet. In some examples, the 540 I / O interface(s) can be configured to provide a serial connection that complies with a version of the IEEE 1394 standard. The 540 I / O interface(s) may also include one or more network interfaces that enable communication between computing devices in the 500 system, or between the 500 system and other networked computing systems. The network interface(s) may include one or more network interface controllers (NICs) or other types of transceiver devices configured to send and receive communications over one or more communication networks using any network protocol. System 500 computing devices can communicate with each other, or with other computing devices, using one or more communication networks. Such communication networks may include public networks such as the Internet, private networks such as an institutional or personal intranet, or any combination of private and public networks. Communication networks may include any type of wired or wireless network, including, but not limited to, local area networks (LANs), wide area networks (WANs), wireless WANs (WWANs), wireless LANs (WLANs), mobile communication networks (e.g., 3G, 4G, 5G, Edge, etc.), and so on. Wireless network(s) may include, for example, networks that employ any suitable version of a Bluetooth™ standard or other suitable wireless networking standard(s).In some implementations, communications between computing devices can be cryptographically encoded or otherwise secured. For example, communications can employ one or more public or private cryptographic keys, ciphers, digital certificates, or other credentials supported by a security protocol, such as any version of Secure Sockets Layer (SSL) or Transport Layer Security (TLS). The 500 system can include any number of computing devices of any type. The computing device(s) may include, but are not limited to: a personal computer, a smartphone, a tablet, a wearable computer, an implanted computer, a mobile gaming device, an e-book reader, a car computer, a desktop computer, a laptop computer, a notebook computer, a game console, a home entertainment device, a network computer, a server computer, a mainframe computer, a distributed computing device (e.g., a cloud computing device), a microcomputer, a system-on-a-chip (SoC), a system-in-a-package (SiP), and so on.Although examples here may describe computing devices as physical devices, implementations are not so limited. In some examples, a computing device may include one or more virtual computing environments, a hypervisor, an emulation, or a virtual machine running on one or more physical computing devices. In some examples, two or more computing devices may include a pool, cloud, array, or other grouping of multiple devices that coordinate operations to provide load balancing, fault tolerance, parallel processing capabilities, shared storage resources, shared networking capabilities, or other features. Implementations and all functional operations described herein may be performed in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures described herein and their structural equivalents, or in combinations of one or more of these. Implementations may be performed as one or more computer program products, that is, one or more modules of computer test instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing equipment. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a matter computation effecting a machine-readable propagated signal, or a combination of two or more of these.The term "computer system" encompasses all devices and machines used to process data, including, for example, a programmable processor, a computer, or multiple processors or computers. The system may also include, in addition to hardware, code that creates an execution environment for the computer program in question; for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these. A propagated signal is an artificially generated signal; for example, a machine-generated electrical, optical, or electromagnetic signal used to encode information for transmission to a suitable receiving device. A computer program (also known as a program, software, software application, script, or code) can be written in any appropriate programming language, including compiled and interpreted languages, or deployed in any appropriate form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that also contains other programs or data (for example, one or more scripts stored in a markup language document), in a single file dedicated to the program, or in multiple coordinated files (for example, files that store one or more modules, subprograms, or code snippets).A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites interconnected by a communication network. The processes and logic flows described herein can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. These processes and logic flows can also be performed by, and a device can also be implemented as, special-purpose logic circuitry, such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). Processors suitable for executing a computer program include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any appropriate class of digital computer. Generally, a processor can receive instructions and data from read-only memory and random-access memory, or both. Elements of a computer may include a processor to execute instructions and one or more memory devices to store instructions and data. Generally, a computer may also include, or be operatively coupled to, receive data from, transfer data to, or both, one or more mass storage devices to store data, for example, magnetic, magneto-optical, or optical disks. However, a computer does not need to have such devices.Furthermore, a computer can be incorporated into another device, such as a mobile phone, a personal digital assistant (PDA), a portable audio player, or a global positioning system (GPS) receiver, to name a few. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard drives or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM discs. The processor and memory may be supplemented by, or incorporated into, special-purpose logic circuitry. To provide user interaction, implementations can be made on a computer that has a display device, such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, to present information to the user, and a keyboard and pointing device, such as a mouse or a seguido, through which the user can provide input to the computer. Different kinds of devices can be used to provide user interaction; for example, feedback provided to the user can be any appropriate form of sensory feedback, such as visual, auditory, or tactile feedback; and user input can be received in any appropriate form, including acoustic, voice, or tactile input. Implementations can be carried out on a computing system that includes a back-end component, such as a data server; a middleware component, such as an application server; or a front-end component, such as a client computer with a graphical user interface or web browser through which a user can interact with the implementation; or any appropriate combination of one or more such back-end, middleware, or front-end components. System components can be interconnected by any suitable form or medium of digital data communication, such as a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), such as the Internet. A computer system can include clients and servers. A client and server are usually located far apart and typically interact through a communication network. The client-server relationship arises from computer programs running on their respective computers, which have a client-server relationship with each other. Although this description contains many details, they should not be interpreted as limitations on the scope of the description or what can be claimed, but rather as descriptions of specific features for particular implementations. Certain features described herein in the context of separate implementations may also be implemented in combination in a single implementation. Conversely, several features described in the context of a single implementation may also be implemented in multiple implementations separately or in any suitable subcombination.Furthermore, although features may be described above as acting in certain combinations and even claimed exclusively as such, one or more features of a combination claimed in some modalities may be taken out of the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination. Similarly, although operations are illustrated in the figures in a particular order, this should not be interpreted as requiring that such operations be performed in the particular order shown or in a sequential order, or that all of the illustrated operations be performed, to achieve desired results. In certain circumstances, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together into a single software product and packaged into multiple software products. A number of implementations have been described. However, it is understood that various modifications can be made without departing from the spirit and scope of the description. For example, various forms of the groups shown above can be used, with steps rearranged, added, or removed. Therefore, other implementations are within the scope of the following claim(s).
Claims
1. A method characterized in that it comprises: receiving, by one or more processors, a plurality of images from one or more containers while the one or more containers are being emptied, the plurality of images comprising a training image set and a validation image set; labeling, by the one or more processors, each image from the plurality of images as including either an overfilled container or a non-overfilled container; processing, by the one or more processors, each image from the plurality of images to reduce deviation of a machine learning model; training, by the one or more processors and based on the labeling, the machine learning model using the plurality of images;and optimize, by one or more processors, the machine learning model by performing learning against the validation set, the optimized machine learning model being used to generate a prediction for a new image of a container, the prediction indicating whether the container in the new image was overfilled before the new container was emptied.
2. The method according to claim 1, further characterized in that it comprises: performing, by one or more processors and subsequent to preprocessing, object detection in each image of the plurality of images to identify a respective container within the plurality of images; and cutting, by one or more processors, each image of the plurality of images to extract a portion of the image with the respective identified container, wherein the training of the machine learning model is carried out by using the images after the cutting has been performed.
3. The method according to claim 1, further characterized in that it comprises: performing, by one or more processors and subsequent to preprocessing, object detection in each image of the plurality of images to identify up to 40 to 60% of a respective container within the plurality of images; and cutting, by one or more processors, each image of the plurality of images to extract a portion of the image with up to 40 to 60% of the respective identified container, wherein the training of the machine learning model is carried out using the images after the cutting has been performed.
4. The method according to claim 1, further characterized in that it comprises: preprocessing, by one or more processors, the plurality of images to extract a hue saturation value (HSV) scale for the plurality of images; and dividing, by one or more processors and based on the HSV scale, the plurality of images into different sets of images within the plurality of images, wherein: the labeling further comprises labeling the plurality of images according to the different sets, and the training of the plurality of images is based on the labeled images.
5. The method according to claim 4, further characterized in that the different sets of images comprise a first set with images obtained during the day and a second set with images obtained during the night.
6. The method according to claim 4, further characterized in that each of the different sets of images includes different images with different corresponding registration dates, each registration date indicating a time at which a respective image was obtained by a corresponding vehicle.
7. The method according to claim 1, further characterized in that it comprises: preprocessing, by one or more processors, the plurality of images to determine geographical locations where the plurality of images was obtained; and dividing, by one or more processors and based on the geographical locations, the plurality of images into different sets of images within the plurality of images, wherein: the labeling further comprises labeling the plurality of images according to the geographical locations; and the training of the plurality of images is based on the labeled images.
8. The method according to claim 1, further characterized in that: although a particular container was being made from one or more containers, a sequence of images is obtained from the plurality of images from one or more vehicles; and training is carried out using the sequence of images.
9. The method according to claim 8, further characterized in that the image sequence is a video stream.
10. The method according to claim 1, further characterized in that it comprises: performing, by one or more processors, object detection in each image of the plurality of images to identify a respective container within the plurality of images; and masking, by one or more processors, other objects in the plurality of images, wherein the training of the machine learning model is performed using the images after the masking has been performed.
11. The method according to claim 1, further characterized in that the preprocessing further includes: reducing, by one or more processors, at least one of the headlight glare or glare due to sunlight in each image of the plurality of images.
12. A non-transient computer program product that stores instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising: receiving a plurality of images from one or more bins while the bins are being emptied, the plurality of images comprising a training set of images and a validation set of images; and labeling each image from the plurality of images as including either an overfilled bin or a non-overfilled bin; processing each image from the plurality of images to reduce deviation of a machine learning model; and training, based on the labeling, the machine learning model using the plurality of images;and optimize the machine learning model by performing learning against the validation set, the optimized machine learning model being used to generate a prediction of a new image of a container, the prediction indicating whether the container in the new image was overfilled before the new container was emptied.
13. A system characterized in that it comprises: at least one programmable processor; and a machine-readable medium that stores instructions which, when executed by the at least one processor, cause the at least one programmable processor to perform operations comprising: receiving a plurality of images from one or more containers while the one or more containers are being emptied, the plurality of images comprising a training set of images and a validation set of images; labeling each image from the plurality of images as including either an overfilled container or an unoverfilled container; processing each image from the plurality of images to reduce deviation to a machine learning model; training, with Pass on labeling, the machine learning model by using the plurality of images;and optimize the machine learning model by performing learning against the validation set, the optimized machine learning model being used to generate a prediction for a new image of a container, the prediction indicating whether the container in the new image was overfilled before the new container was emptied.
14. An article for manufacture comprising computer-executable instructions stored on non-transient, computer-readable media, which, when executed by a computer, cause the computer to perform operations comprising: receiving a plurality of images from one or more containers while one or more containers are being emptied, the plurality of images comprising an image training set and an image validation set; labeling each image of the plurality of images as including either an overfilled container or a non-overfilled container; processing each image of the plurality of images to reduce deviation of a machine learning model; training, based on the labeling, the machine learning model by using the plurality of images;and optimize the machine learning model by performing learning against the validation set, the optimized machine learning model rj ihnn / rznz / zi / YiAi used to generate a prediction for a new image of a container, the prediction indicating whether the container in the new image was overfilled before the new container was emptied.;