US20230388639A1 - Automated camera positioning for feeding behavior monitoring - Google Patents
Automated camera positioning for feeding behavior monitoring Download PDFInfo
- Publication number
- US20230388639A1 US20230388639A1 US18/206,542 US202318206542A US2023388639A1 US 20230388639 A1 US20230388639 A1 US 20230388639A1 US 202318206542 A US202318206542 A US 202318206542A US 2023388639 A1 US2023388639 A1 US 2023388639A1
- Authority
- US
- United States
- Prior art keywords
- subfeeder
- camera
- image
- scene
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000004634 feeding behavior Effects 0.000 title abstract description 23
- 238000012544 monitoring process Methods 0.000 title abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000009360 aquaculture Methods 0.000 claims description 9
- 244000144974 aquaculture Species 0.000 claims description 7
- 238000004590 computer program Methods 0.000 abstract description 7
- 241000251468 Actinopterygii Species 0.000 description 18
- 235000019688 fish Nutrition 0.000 description 18
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 11
- 244000144972 livestock Species 0.000 description 5
- 230000015654 memory Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 241000972773 Aulopiformes Species 0.000 description 1
- 241000251730 Chondrichthyes Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000009395 breeding Methods 0.000 description 1
- 230000001488 breeding effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- -1 e.g. Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 239000013505 freshwater Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000366 juvenile effect Effects 0.000 description 1
- 208000028454 lice infestation Diseases 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 238000009372 pisciculture Methods 0.000 description 1
- 230000000384 rearing effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 235000019515 salmon Nutrition 0.000 description 1
- 239000013535 sea water Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K29/00—Other apparatus for animal husbandry
- A01K29/005—Monitoring or measuring activity, e.g. detecting heat or mating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/695—Control of camera direction for changing a field of view, e.g. pan, tilt or based on tracking of objects
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K61/00—Culture of aquatic animals
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01K—ANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
- A01K61/00—Culture of aquatic animals
- A01K61/80—Feeding devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30232—Surveillance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A40/00—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
- Y02A40/80—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in fisheries management
- Y02A40/81—Aquaculture, e.g. of fish
Definitions
- This specification relates to aquaculture systems, and more specifically, to automated camera positioning for aquaculture feeding behavior monitoring.
- Aquaculture refers to the breeding, rearing, and harvesting of animals and plants in all types of water environments under controlled conditions.
- One of the methods of aquaculture involves aquafarming, which is fish farming in tanks or ocean enclosures.
- Offshore aquafarms can include feeding systems that introduce feed into the enclosure under the water surface, such as subfeeders. Monitoring the feeding behavior of fish in the ocean can be important to determine the amount of feed that is being consumed by the fish, and to modify the feeding regimen accordingly.
- monitoring the feeding behavior offshore can pose significant challenges due to severe weather conditions and strong ocean currents that may arise.
- monitoring equipment is typically submerged under water where it can collide with the feeding system or other objects.
- Implementations of the present disclosure include methods for automated camera positioning for feeding behavior monitoring. More particularly, implementations of the present disclosure determine a positon of a camera underwater based on a spatial model of a subfeeder from which a feed is delivered to farmed fish.
- the method includes the actions of: obtaining, by a camera of a control system that includes (i) the camera, ii) a subfeeder that includes a pipe that delivers feed underwater, (iii) a position estimator, and (iv) a winch controller, an image of a scene, obtaining, by the position estimator, a spatial model that corresponds to the subfeeder, obtaining, by the position estimator, calibration parameters of the camera, determining, by the position estimator and based on the spatial model, the image of the scene, and the calibration parameters of the camera, a size of the subfeeder in the image of the scene, selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, an updated position of the camera relative to the subfeeder, providing, by the position estimator, the updated position of the camera relative to the subfeeder to the winch controller, and moving, by the winch controller, the camera to the updated position.
- selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, the updated position of the camera comprises: dynamically selecting the updated position of the camera relative to the subfeeder.
- the updated position comprises a preferred position of the camera relative to the subfeeder associated with the spatial model of the subfeeder.
- selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, the updated position of the camera relative to the subfeeder comprises: determining a depth of the subfeeder that characterizes a distance of the camera that obtained the image of the scene from the subfeeder, determining, based on the depth of the subfeeder, a current position of the camera relative to the subfeeder, and selecting, based on the current position of the camera relative to the subfeeder, the updated position of the camera relative to the subfeeder.
- determining the depth of the subfeeder that characterizes the distance of the camera that obtained the image of the scene from the subfeeder comprises: determining a number of pixels in the image of the scene that depict the subfeeder.
- determining the depth of the subfeeder that characterizes the distance of the camera that obtained the image of the scene from the subfeeder comprises: correlating the spatial model of the subfeeder within the image of the scene with the calibration parameters of the camera.
- the subfeeder in the image of the scene, is at least partially obscured by another object.
- the method further includes: determining, by the position estimator, based on the spatial model of the subfeeder, the calibration parameters of the camera, and the image of the scene, a current position of the camera relative to the subfeeder, and where selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, an updated position of the camera relative to the subfeeder comprises: selecting the updated position of the camera relative to the subfeeder such that a feed is visible within the image of the scene.
- determining, by the position estimator, based on the spatial model of the subfeeder, the calibration parameters of the camera, and the image of the scene, the current position of the camera relative to the subfeeder comprises: determining that at the current position of the camera relative to the subfeeder a feed is not visible within the image of the scene.
- the present disclosure further provides one or more non-transitory computer-readable storage medium coupled to one or more processors 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.
- the present disclosure further provides a system for implementing the methods provided herein.
- the system includes one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations in accordance with implementations of the methods provided herein.
- Implementations of the present disclosure provide one or more of the following technical advantages and improvements over previously available solutions.
- An automated system for feeding behavior monitoring can provide more accurate determination of feeding behavior and can increase the efficiency and sustainability of aquafarming.
- the automated control can ensure that a camera is optimally positioned to capture images from which the feeding behavior of fish and unconsumed feeding pellets can be discerned.
- the feeding regimen can be appropriately modified so as to decrease feed wastage and improve growth yield.
- the automated system for feeding behavior monitoring can obtain images of fish consuming the feed and determine where the camera should be placed on this basis.
- the camera can be controlled such that the fish appear in the field of view of the camera, and a position of the camera can be determined such that it is located proximally to the feeding location.
- the feed delivered by a subfeeder in the enclosure can concentrate in close proximity to the subfeeder at localized areas with limited spread.
- the consumption of the feed by the fish tends to occur proximally to the feeding structure, which affects optimal camera positioning for monitoring.
- the camera should be positioned close enough to enable feeding behavior monitoring, and on the other hand the camera should be protected from collisions with the subfeeder and other underwater structures as the sea state moves things around.
- some subfeeders can be configured in different geometries.
- some subfeeders can include protruding structures, such as sharp corners, that can collide with the camera.
- the systems described in this specification determine positioning of the camera by using a spatial model of a particular type of subfeeder, which can include detailed design features or other attributes of the feeding structure and provide information about optimal positioning of the camera such that collisions with the particular type of subfeeder are avoided. Therefore, the systems described in this specification can provide more accurate determination of feeding behavior while minimizing the likelihood of collision damage to the camera.
- FIG. 1 depicts an example application of the implementations of the present disclosure.
- FIG. 2 depicts an example system for performing the operations according to the implementations of the present disclosure.
- FIG. 3 depicts an example process that can be executed in accordance with implementations of the present disclosure.
- FIG. 1 depicts an example camera positioning system 100 and an enclosure 110 that contains aquatic livestock.
- the livestock can be aquatic creatures, such as fish 120 swimming freely within the confines of the enclosure 110 .
- the aquatic livestock 120 can include finfish, juvenile fish, koi fish, sharks, salmon, bass, and others.
- the enclosure 110 contains water, e.g., seawater, freshwater, or rainwater, although the enclosure can contain any fluid that is capable of sustaining a habitable environment for the aquatic livestock.
- the camera positioning system 100 can be anchored to a structure such as a pier, a dock, or a buoy, instead of being confined within the enclosure 110 .
- a structure such as a pier, a dock, or a buoy
- the fish 120 can be free to roam in a body of water, and the camera positioning system 100 can monitor fish within a certain area of the body of water.
- the camera positioning system 100 can further include an aquatic feeding subsystem 130 that delivers feed 132 to the fish 120 through a subfeeder 131 that can be disposed at a depth (e.g., 8 meters) from the surface of the water.
- the subfeeder 131 is a structure including a main pipe that is connected to multiple manifold pipes.
- the feed 132 can travel from the main pipe through each of the manifold pipes, the ends of which define feeding points 133 (e.g., points at which the feed 132 exits the subfeeder 131 and enters the water).
- the manifold pipes and the feeding points 133 are disposed across the perimeter of the subfeeder 131 .
- the subfeeder 131 can include any number of manifold pipes, and the perimeter of the subfeeder 131 can be square (as shown in FIG. 1 ) or circular in shape. Other configurations of the subfeeder are also possible.
- the feeding system 130 including the subfeeder 131 enables feeding the fish 120 deep under water, thereby reducing lice infestation and drifting of the feed 132 due to wind and strong currents in the upper water layer. Further, in contrast to above-surface feeders, the feed 132 from the subfeeder 131 can still be reliably delivered to the fish 120 in bad weather conditions (e.g., during a storm).
- the subfeeder 131 can include a device that can determine its absolute location, e.g., a GPS device coupled to a buoy, or any other appropriate device.
- the camera positioning system 100 can further include a camera 140 that can monitor the feeding behavior of fish 120 .
- the camera 140 can capture image and video data.
- any other device, or combination of devices can be provided that are capable of capturing image and video data.
- the camera 140 can be coupled to a winch subsystem 102 that can include a winch controller 103 , one or more winch lines 105 on which the camera 140 is suspended, and one or more winches 104 coupled to the winch line 105 .
- the winch subsystem 102 can further include one or more motors, one or more power supplies, and one or more pulleys to which the winch line 105 is attached.
- the winch controller 130 can also fix the position of the camera 140 at a predetermined position with respect to the subfeeder 131 .
- the winch subsystem 102 can engage one or more motors to move the winch line 105 , and the suspended camera 140 , in x, y, and z directions, to a position dictated by the command. Further, the winch subsystem 102 can tilt the camera 140 to alter the viewing angle of the camera 140 .
- the subfeeder 131 can be coupled to the one or more winches 104 , one or more winch lines 105 , and the winch controller 103 .
- a position of the subfeeder 131 can be estimated based on a length of the one or more winch lines 105 spooled out by the one or more winches 104 .
- the positioning of the camera 140 is important for effective feeding behavior monitoring.
- the feed 132 exiting the manifolds of the subfeeder 131 tends to be localized in the vicinity of feeding points 133 with limited spread. Accordingly, the fish 120 tend to consume the feed 132 at the feeding points 133 and in close proximity to the subfeeder 131 .
- the camera 140 should be positioned in close proximity to the subfeeder 131 .
- positioning the camera 140 too close to the subfeeder 131 poses risks of damage to the camera 140 because it can collide with other structures underwater, such as the subfeeder 131 .
- a current position (e.g., position A) of the camera 140 can be estimated relative to an object (e.g., the subfeeder 131 ) identified in an image of a scene, obtained by the camera 140 at the current position, based on known parameters of the object.
- the subfeeder 131 can have a spatial model (e.g., a three-dimensional digital model, such as a CAD model) associated with it, that can include information about physical characteristics, such as mass, center of gravity, and dimensions, of the subfeeder 131 .
- a spatial model can be used to generate different candidate images for different orientations and/or angular positions of the subfeeder 131 .
- Each candidate image can represent an angular view of the subfeeder that is represented by the spatial model.
- the system described in this specification can select a first candidate image of the subfeeder 131 that presents the angular view of the subfeeder 131 that is substantially similar to the angular view (e.g., orientation) of the subfeeder 131 in the image of the scene obtained by the camera 140 at position A.
- the system can use the first candidate image of the subfeeder 131 , the information contained in the spatial model of the subfeeder 131 , and calibration parameters of the camera 140 , to correlate the size and the position of the subfeeder 131 within the image of the scene.
- a depth of the subfeeder 131 can be estimated.
- the depth of the subfeeder 131 can indicate a distance from the subfeeder 131 to the camera 140 that obtained the image of the scene.
- the system can obtain locations of one or more corners (e.g., feeding points 133 ) of the subfeeder 131 and fit them to a parametrized model of the subfeeder 131 that includes the location and the pose of the subfeeder 131 .
- the spatial model can include the enclosure 110 and/or objects contained within the enclosure 110 . On this basis, the system can determine the current position of the camera 140 relative to the subfeeder 131 .
- the fish 120 and the feed 132 are discernible from the images obtained by the camera 140 , which is optimal for effective feeding behavior monitoring.
- the updated position of the camera 140 can be estimated in a similar way as described above.
- the system described in this specification can select a second different candidate image of the subfeeder 131 that presents the angular view of the subfeeder 131 that is substantially similar to the angular view (e.g., orientation) of the subfeeder 131 in a second different image of the scene obtained by the camera 140 at position B.
- the system can use the second candidate image of the subfeeder 131 , the information contained in the spatial model of the subfeeder 131 , and calibration parameters of the camera 140 , to correlate the size and the position of the subfeeder 131 within the second image of the scene. On this basis, the system can determine the updated position of the camera 140 relative to the subfeeder 131 .
- the updated position can be, e.g., 1 meter, or less, vertically below the feeding points 133 of the subfeeder 131 .
- the updated position can represent a tilt of the camera 140 relative to the subfeeder 131 , i.e., an updated angle of view of the camera 140 .
- the system can use the current position of the camera 140 relative to the subfeeder 131 (e.g., position A determined previously), and absolute position of the subfeeder 131 , to estimate an updated position of the camera 140 relative to the subfeeder 131 (e.g., position B).
- the positions and the orientations of the subfeeder 131 and the camera 140 can change due to, e.g., wind and strong ocean currents, and the systems described in this specification can dynamically estimate and update the position of the camera 140 relative to the subfeeder 131 . Therefore, the systems described in this specification can maximize the effectiveness of feeding behavior monitoring while minimizing the likelihood of collisions of the camera 140 with the subfeeder 131 .
- FIG. 2 depicts an example system 200 for performing the operations according to the implementations of the present disclosure.
- the system 200 can be implemented by a combination of hardware, software and firmware.
- the system 200 can include a camera 260 for capturing image and video data (e.g., an image of a scene). In place of the camera 260 , any device, or combination of devices, that are capable of generating image and video data can be used.
- the system 200 further includes a camera interface 250 communicatively coupled to the camera 260 .
- the camera interface 250 can receive image and video data from the camera 260 and provide it as an input to other components of the system 200 .
- the system 200 further includes a position database 280 communicatively coupled to a position estimator 230 .
- the position database 280 stores information about an absolute position (or an estimate) of a subfeeder (e.g., the subfeeder 131 in FIG. 1 ).
- the position database 280 can receive measurements from a device coupled to the subfeeder 131 (e.g., a GPS device, a position encoder coupled to a winch and the subfeeder 131 by a winch line, or any other appropriate device), determine its position, and store the position information.
- the absolute position information of the subfeeder can be provided to the position database 280 manually by an operator.
- the position database 280 can also include information about an absolute position of the camera 260 .
- the absolute position of the camera can be determined by e.g., obtaining data from a GPS attached to the camera 260 , measuring a length of a winch line that is coupled to the camera 260 and spooled out from a winch, or any other suitable means.
- the information in the position database 280 can be used by the position estimator 230 to determine a current position of the camera 140 relative to the subfeeder 131 , and estimate an updated position of the camera 140 relative to the subfeeder 131 .
- the system 200 further includes a spatial model database 240 communicatively coupled to the position estimator 230 .
- the spatial model database 240 can include a spatial model that contains specifications of the subfeeder (e.g., the subfeeder 131 in FIG. 1 ).
- the spatial model can be a digital model, such as a computer aided design (CAD) model that can be manipulated, e.g., tilted in an arbitrary angle.
- CAD computer aided design
- Each different type of subfeeder e.g., a subfeeder with a square perimeter, a subfeeder with a circular perimeter, and any other type of subfeeder
- the spatial model can include metadata information about identity, characteristics, and/or visual appearance such as size, configuration, and different orientations, of the subfeeder that the model represents.
- the spatial model can include information about physical characteristics, such as center of gravity and/or different axis, of the respective subfeeder.
- the spatial model can contain information about a particular type of subfeeder including non-visible features, such as temperature, magnetic field, etc. of different parts of the subfeeder.
- the position estimator 230 can receive position information from the position database 280 , spatial model information of the subfeeder from the spatial model database 240 , and the image of the scene obtained by the camera 260 , and determine a current position of the camera relative to the subfeeder (e.g., position A in FIG. 1 ).
- the spatial model can be used by the position estimator 230 to generate different candidate images for different orientations and/or angular positions of the subfeeder.
- Each candidate image can represent an angular view of the subfeeder that is represented by the spatial model.
- These candidate images can be used to identify the subfeeder that is oblique in the image of the scene obtained by the camera 260 , because the candidate images provide a variety of positions, orientations, and angular views of the subfeeder.
- the position estimator 230 can select a candidate image of the subfeeder that presents the angular view of the subfeeder that is substantially similar to the angular view (e.g., orientation) of the subfeeder in the image of the scene obtained by the camera 260 .
- the position estimator 230 can use the candidate image, the information contained in the spatial model, and calibration parameters of the camera 260 , to correlate the size and the position of the subfeeder within the image of the scene.
- a depth of the subfeeder can be estimated.
- the depth of the subfeeder can indicate a distance from the subfeeder to the camera 260 that obtained the image of the scene.
- the position estimator can determine the position of the camera relative to the subfeeder (e.g., to a feeding point 133 of the subfeeder 131 in FIG. 1 ).
- the position estimator 230 can estimate an updated position (e.g., position B in FIG. 1 ) of the camera relative to the subfeeder.
- the updated position can be estimated in a similar way as described above.
- the position estimator 230 can select a second different candidate image of the subfeeder that presents the angular view of the subfeeder that is substantially similar to the angular view (e.g., orientation) of the subfeeder in a second different image of the scene obtained by the camera 140 at the updated position.
- the system can use the second candidate image of the subfeeder, the information contained in the spatial model of the subfeeder, and calibration parameters of the camera, to correlate the size and the position of the subfeeder within the second image of the scene obtained by the camera 260 .
- the position estimator 230 can estimate the updated position of the camera 260 relative to the subfeeder.
- the position estimator 230 can use the information about the current position of the camera 260 relative to the subfeeder, and information about the absolute position of the subfeeder stored in the position database 280 , to estimate an updated position of the camera 260 relative to the subfeeder.
- the position estimator 230 can estimate an optimal position of the camera 260 for the particular type of subfeeder, thereby reducing the likelihood of collision damage to the camera 260 while ensuring effective feeding behavior monitoring.
- the position estimator 230 can provide a command to the winch controller 220 to move the camera to the updated position.
- the winch controller in turn, can operate the motor 270 to move the camera, in a similar way as described above with reference to FIG. 1 , to the updated position.
- the position estimator 230 can dynamically estimate an updated position of the camera 260 relative to the subfeeder.
- the camera 260 can continuously generate image and video data and provide it to the position estimator 230 , and the position estimator 230 can iteratively estimate the current position of the camera 260 relative to the subfeeder.
- the position estimator 230 can estimate an updated position of the camera 260 relative to the subfeeder, in a similar way as described above, and provide it to the winch controller 220 , that can engage the motor 270 to move the camera 260 to the updated position at each iteration.
- the position estimator 230 can iteratively estimate an updated position of the camera 260 relative to the subfeeder based on the current position of the camera 260 relative to the subfeeder and the absolute position of the subfeeder obtained from the position database 280 .
- the system 200 can dynamically adjust the position of the camera 260 relative to the subfeeder, when the subfeeder (or the camera, or both) undergoes a change in position due to the influence of e.g., wind, or strong ocean currents. This, in turn, enables the system 200 to prevent collisions of the camera with the subfeeder and to provide optimal positioning of the camera 260 for effective feeding behavior monitoring.
- FIG. 3 depicts an example process 300 that can be executed in accordance with the implementations of the present disclosure.
- the example process 300 can be performed using one or more computer-executable programs executed using one or more computing devices.
- the process 300 can be performed by the system 200 depicted in FIG. 2 .
- the system obtains, by one or more cameras of a control system, an image of a scene ( 302 ).
- the scene can include, for example, a view of the subfeeder, as shown by location A in FIG. 1 .
- the system obtains, by the position estimator, a spatial model that corresponds to the subfeeder, the spatial model being obtained from the database of spatial models ( 304 ).
- each different type of subfeeder can include a corresponding spatial model containing specifications of the subfeeder.
- the system determines, by the position estimator, based on data from the spatial model and the image of the scene, a current position of the one or more cameras relative to the subfeeder ( 306 ).
- the system can receive a calibration information of one or more cameras by the position estimator and correlate the spatial model of the subfeeder within the image of the scene with the calibration information of the one or more cameras.
- the subfeeder within the image of the scene can be partially obscured by another object (e.g., fish), and the system can check the spatial model to determine the relevant information about the subfeeder that is not present in the image of the scene due to the obstruction.
- the spatial model can indicate metadata of the subfeeder, including a dimension of a portion of the subfeeder that is not discernable from the image of the scene.
- the system selects, by the position estimator, an updated position of the one or more cameras relative to the subfeeder ( 308 ).
- the system can dynamically select the updated position of the one or more cameras relative to the subfeeder.
- the system can iteratively determine the updated position of the camera relative to the subfeeder based on images obtained from the camera.
- the updated position can include a preferred position of the one or more cameras relative to the subfeeder associated with the spatial model of the subfeeder.
- the system can determine the updated position so as to avoid a sharp corner of the subfeeder while positioning the camera in close proximity to the subfeeder.
- the system can determine the updated position to be proximal to a feeding point of a particular type of subfeeder.
- the system can select the updated position of the one or more cameras relative to the subfeeder such that the feed is visible within the image of the scene.
- the updated position of the one or more cameras relative to the subfeeder can be located, for example, at a depth of 1 meter or less below a feeding point of the subfeeder.
- the system provides, by the position estimator, the updated position of the one or more cameras relative to the subfeeder to the winch controller ( 308 ).
- the system moves ( 310 ), by the winch controller, the one or more cameras to the updated position.
- the winch controller can engage the motor and move the camera to the updated position. Accordingly, the system 200 can position the camera to enable effective feeding behavior monitoring while minimizing the likelihood of collisions of the camera with the feeding system.
- the features described may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
- the apparatus may be implemented in a computer program product tangibly embodied in an information carrier (e.g., in a machine-readable storage device) for execution by a programmable processor; and method steps may be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output.
- the described features may be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
- a computer program is a set of instructions that may be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.
- a computer program may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- Elements of a computer may include a processor for executing instructions and one or more memories for storing instructions and data.
- a computer may also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
- Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example 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.
- 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.
- the processor and the memory may be supplemented by, or incorporated in, application-specific integrated circuits (ASICs).
- ASICs application-specific integrated circuits
- the features may be implemented on a computer having a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user may provide input to the computer.
- a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user may provide input to the computer.
- CTR cathode ray tube
- LCD liquid crystal display
- the features may be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them.
- the components of the system may be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a local area network (LAN), a wide area network (WAN), and the computers and networks forming the Internet.
- LAN local area network
- WAN wide area network
- the computer system may include clients and servers.
- a client and server are generally remote from each other and typically interact through a network, such as the described one.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Landscapes
- Life Sciences & Earth Sciences (AREA)
- Environmental Sciences (AREA)
- Engineering & Computer Science (AREA)
- Animal Husbandry (AREA)
- Biodiversity & Conservation Biology (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Marine Sciences & Fisheries (AREA)
- Zoology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Studio Devices (AREA)
Abstract
Description
- This application is a continuation of U.S. application Ser. No. 17/691,902, filed Mar. 10, 2022, which is a continuation of U.S. application Ser. No. 17/246,911, filed on May 3, 2021, now U.S. Pat. No. 11,297,247. The disclosures of the prior applications are considered part of and are incorporated by reference in the disclosure of this application.
- This specification relates to aquaculture systems, and more specifically, to automated camera positioning for aquaculture feeding behavior monitoring.
- Aquaculture refers to the breeding, rearing, and harvesting of animals and plants in all types of water environments under controlled conditions. One of the methods of aquaculture involves aquafarming, which is fish farming in tanks or ocean enclosures.
- Offshore aquafarms can include feeding systems that introduce feed into the enclosure under the water surface, such as subfeeders. Monitoring the feeding behavior of fish in the ocean can be important to determine the amount of feed that is being consumed by the fish, and to modify the feeding regimen accordingly.
- However, monitoring the feeding behavior offshore can pose significant challenges due to severe weather conditions and strong ocean currents that may arise. For effective feeding observation, monitoring equipment is typically submerged under water where it can collide with the feeding system or other objects.
- Accordingly, there exists a growing need for systems and methods that would enable feeding behavior monitoring under the water surface in an effective and safe manner.
- Implementations of the present disclosure include methods for automated camera positioning for feeding behavior monitoring. More particularly, implementations of the present disclosure determine a positon of a camera underwater based on a spatial model of a subfeeder from which a feed is delivered to farmed fish.
- In some implementations, the method includes the actions of: obtaining, by a camera of a control system that includes (i) the camera, ii) a subfeeder that includes a pipe that delivers feed underwater, (iii) a position estimator, and (iv) a winch controller, an image of a scene, obtaining, by the position estimator, a spatial model that corresponds to the subfeeder, obtaining, by the position estimator, calibration parameters of the camera, determining, by the position estimator and based on the spatial model, the image of the scene, and the calibration parameters of the camera, a size of the subfeeder in the image of the scene, selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, an updated position of the camera relative to the subfeeder, providing, by the position estimator, the updated position of the camera relative to the subfeeder to the winch controller, and moving, by the winch controller, the camera to the updated position.
- In some implementations, selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, the updated position of the camera comprises: dynamically selecting the updated position of the camera relative to the subfeeder.
- In some implementations, the updated position comprises a preferred position of the camera relative to the subfeeder associated with the spatial model of the subfeeder.
- In some implementations, selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, the updated position of the camera relative to the subfeeder, comprises: determining a depth of the subfeeder that characterizes a distance of the camera that obtained the image of the scene from the subfeeder, determining, based on the depth of the subfeeder, a current position of the camera relative to the subfeeder, and selecting, based on the current position of the camera relative to the subfeeder, the updated position of the camera relative to the subfeeder.
- In some implementations, determining the depth of the subfeeder that characterizes the distance of the camera that obtained the image of the scene from the subfeeder comprises: determining a number of pixels in the image of the scene that depict the subfeeder.
- In some implementations, determining the depth of the subfeeder that characterizes the distance of the camera that obtained the image of the scene from the subfeeder comprises: correlating the spatial model of the subfeeder within the image of the scene with the calibration parameters of the camera.
- In some implementations, in the image of the scene, the subfeeder is at least partially obscured by another object.
- In some implementations, the method further includes: determining, by the position estimator, based on the spatial model of the subfeeder, the calibration parameters of the camera, and the image of the scene, a current position of the camera relative to the subfeeder, and where selecting, by the position estimator and based on the size of the subfeeder in the image of the scene, an updated position of the camera relative to the subfeeder comprises: selecting the updated position of the camera relative to the subfeeder such that a feed is visible within the image of the scene.
- In some implementations, determining, by the position estimator, based on the spatial model of the subfeeder, the calibration parameters of the camera, and the image of the scene, the current position of the camera relative to the subfeeder comprises: determining that at the current position of the camera relative to the subfeeder a feed is not visible within the image of the scene.
- The present disclosure further provides one or more non-transitory computer-readable storage medium coupled to one or more processors 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.
- The present disclosure further provides a system for implementing the methods provided herein. The system includes one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations in accordance with implementations of the methods provided herein.
- Implementations of the present disclosure provide one or more of the following technical advantages and improvements over previously available solutions.
- An automated system for feeding behavior monitoring can provide more accurate determination of feeding behavior and can increase the efficiency and sustainability of aquafarming. For example, the automated control can ensure that a camera is optimally positioned to capture images from which the feeding behavior of fish and unconsumed feeding pellets can be discerned. Accordingly, the feeding regimen can be appropriately modified so as to decrease feed wastage and improve growth yield.
- The automated system for feeding behavior monitoring can obtain images of fish consuming the feed and determine where the camera should be placed on this basis. For example, the camera can be controlled such that the fish appear in the field of view of the camera, and a position of the camera can be determined such that it is located proximally to the feeding location. However, the feed delivered by a subfeeder in the enclosure can concentrate in close proximity to the subfeeder at localized areas with limited spread. As a result, the consumption of the feed by the fish tends to occur proximally to the feeding structure, which affects optimal camera positioning for monitoring. On the one hand, the camera should be positioned close enough to enable feeding behavior monitoring, and on the other hand the camera should be protected from collisions with the subfeeder and other underwater structures as the sea state moves things around.
- Further, some subfeeders can be configured in different geometries. For example, some subfeeders can include protruding structures, such as sharp corners, that can collide with the camera. Accordingly, the systems described in this specification determine positioning of the camera by using a spatial model of a particular type of subfeeder, which can include detailed design features or other attributes of the feeding structure and provide information about optimal positioning of the camera such that collisions with the particular type of subfeeder are avoided. Therefore, the systems described in this specification can provide more accurate determination of feeding behavior while minimizing the likelihood of collision damage to the camera.
-
FIG. 1 depicts an example application of the implementations of the present disclosure. -
FIG. 2 depicts an example system for performing the operations according to the implementations of the present disclosure. -
FIG. 3 depicts an example process that can be executed in accordance with implementations of the present disclosure. - Like reference symbols in the various drawings indicate like elements.
-
FIG. 1 depicts an examplecamera positioning system 100 and anenclosure 110 that contains aquatic livestock. The livestock can be aquatic creatures, such asfish 120 swimming freely within the confines of theenclosure 110. In some implementations, theaquatic livestock 120 can include finfish, juvenile fish, koi fish, sharks, salmon, bass, and others. In addition to the aquatic livestock, theenclosure 110 contains water, e.g., seawater, freshwater, or rainwater, although the enclosure can contain any fluid that is capable of sustaining a habitable environment for the aquatic livestock. - In some implementations, the
camera positioning system 100 can be anchored to a structure such as a pier, a dock, or a buoy, instead of being confined within theenclosure 110. For example, instead of being confined within theenclosure 110, thefish 120 can be free to roam in a body of water, and thecamera positioning system 100 can monitor fish within a certain area of the body of water. - The
camera positioning system 100 can further include anaquatic feeding subsystem 130 that deliversfeed 132 to thefish 120 through asubfeeder 131 that can be disposed at a depth (e.g., 8 meters) from the surface of the water. Thesubfeeder 131 is a structure including a main pipe that is connected to multiple manifold pipes. Thefeed 132 can travel from the main pipe through each of the manifold pipes, the ends of which define feeding points 133 (e.g., points at which thefeed 132 exits thesubfeeder 131 and enters the water). The manifold pipes and thefeeding points 133 are disposed across the perimeter of thesubfeeder 131. Thesubfeeder 131 can include any number of manifold pipes, and the perimeter of thesubfeeder 131 can be square (as shown inFIG. 1 ) or circular in shape. Other configurations of the subfeeder are also possible. - In contrast to above-surface feeders, the
feeding system 130 including thesubfeeder 131 enables feeding thefish 120 deep under water, thereby reducing lice infestation and drifting of thefeed 132 due to wind and strong currents in the upper water layer. Further, in contrast to above-surface feeders, thefeed 132 from thesubfeeder 131 can still be reliably delivered to thefish 120 in bad weather conditions (e.g., during a storm). In some implementations, thesubfeeder 131 can include a device that can determine its absolute location, e.g., a GPS device coupled to a buoy, or any other appropriate device. - The
camera positioning system 100 can further include acamera 140 that can monitor the feeding behavior offish 120. Thecamera 140 can capture image and video data. In place of thecamera 140, any other device, or combination of devices, can be provided that are capable of capturing image and video data. Thecamera 140 can be coupled to awinch subsystem 102 that can include awinch controller 103, one ormore winch lines 105 on which thecamera 140 is suspended, and one ormore winches 104 coupled to thewinch line 105. - The
winch subsystem 102 can further include one or more motors, one or more power supplies, and one or more pulleys to which thewinch line 105 is attached. Thewinch controller 130 can also fix the position of thecamera 140 at a predetermined position with respect to thesubfeeder 131. In response to a command received by thewinch controller 103, thewinch subsystem 102 can engage one or more motors to move thewinch line 105, and the suspendedcamera 140, in x, y, and z directions, to a position dictated by the command. Further, thewinch subsystem 102 can tilt thecamera 140 to alter the viewing angle of thecamera 140. - In some implementations, the
subfeeder 131 can be coupled to the one ormore winches 104, one ormore winch lines 105, and thewinch controller 103. A position of thesubfeeder 131 can be estimated based on a length of the one ormore winch lines 105 spooled out by the one or more winches 104. - The positioning of the
camera 140 is important for effective feeding behavior monitoring. Generally, thefeed 132 exiting the manifolds of thesubfeeder 131 tends to be localized in the vicinity of feedingpoints 133 with limited spread. Accordingly, thefish 120 tend to consume thefeed 132 at the feeding points 133 and in close proximity to thesubfeeder 131. As a result, for effective feeding behavior monitoring, thecamera 140 should be positioned in close proximity to thesubfeeder 131. However, positioning thecamera 140 too close to thesubfeeder 131 poses risks of damage to thecamera 140 because it can collide with other structures underwater, such as thesubfeeder 131. - As shown in
FIG. 1 , when thecamera 140 is positioned at position A, it is difficult to discern details relating to the feeding behavior from the images obtained by thecamera 140. Although thecamera 140 is protected from other structures at position A, effective feeding behavior monitoring cannot occur at this position. - A current position (e.g., position A) of the
camera 140 can be estimated relative to an object (e.g., the subfeeder 131) identified in an image of a scene, obtained by thecamera 140 at the current position, based on known parameters of the object. Thesubfeeder 131 can have a spatial model (e.g., a three-dimensional digital model, such as a CAD model) associated with it, that can include information about physical characteristics, such as mass, center of gravity, and dimensions, of thesubfeeder 131. Such spatial model can be used to generate different candidate images for different orientations and/or angular positions of thesubfeeder 131. Each candidate image can represent an angular view of the subfeeder that is represented by the spatial model. These candidate images can be used to identify thesubfeeder 131 that is oblique in the image of the scene, because the candidate images provide a variety of positions, orientations, and angular views of thesubfeeder 131. - The system described in this specification can select a first candidate image of the
subfeeder 131 that presents the angular view of thesubfeeder 131 that is substantially similar to the angular view (e.g., orientation) of thesubfeeder 131 in the image of the scene obtained by thecamera 140 at position A. The system can use the first candidate image of thesubfeeder 131, the information contained in the spatial model of thesubfeeder 131, and calibration parameters of thecamera 140, to correlate the size and the position of thesubfeeder 131 within the image of the scene. For example, based on the spatial model of thesubfeeder 131, the orientation of thesubfeeder 131 in the first candidate image and the image of the scene, and a number (or a location) of pixels that thesubfeeder 131 occupies in the image of the scene, a depth of thesubfeeder 131 can be estimated. The depth of thesubfeeder 131 can indicate a distance from thesubfeeder 131 to thecamera 140 that obtained the image of the scene. In some implementations, the system can obtain locations of one or more corners (e.g., feeding points 133) of thesubfeeder 131 and fit them to a parametrized model of thesubfeeder 131 that includes the location and the pose of thesubfeeder 131. In some implementations, the spatial model can include theenclosure 110 and/or objects contained within theenclosure 110. On this basis, the system can determine the current position of thecamera 140 relative to thesubfeeder 131. - When the
camera 140 is positioned at an updated position (e.g., position B), thefish 120 and thefeed 132 are discernible from the images obtained by thecamera 140, which is optimal for effective feeding behavior monitoring. The updated position of thecamera 140 can be estimated in a similar way as described above. For example, the system described in this specification can select a second different candidate image of thesubfeeder 131 that presents the angular view of thesubfeeder 131 that is substantially similar to the angular view (e.g., orientation) of thesubfeeder 131 in a second different image of the scene obtained by thecamera 140 at position B. - The system can use the second candidate image of the
subfeeder 131, the information contained in the spatial model of thesubfeeder 131, and calibration parameters of thecamera 140, to correlate the size and the position of thesubfeeder 131 within the second image of the scene. On this basis, the system can determine the updated position of thecamera 140 relative to thesubfeeder 131. In some implementations, the updated position can be, e.g., 1 meter, or less, vertically below the feeding points 133 of thesubfeeder 131. In some implementations, the updated position can represent a tilt of thecamera 140 relative to thesubfeeder 131, i.e., an updated angle of view of thecamera 140. In some implementations, the system can use the current position of thecamera 140 relative to the subfeeder 131 (e.g., position A determined previously), and absolute position of thesubfeeder 131, to estimate an updated position of thecamera 140 relative to the subfeeder 131 (e.g., position B). - The positions and the orientations of the
subfeeder 131 and thecamera 140 can change due to, e.g., wind and strong ocean currents, and the systems described in this specification can dynamically estimate and update the position of thecamera 140 relative to thesubfeeder 131. Therefore, the systems described in this specification can maximize the effectiveness of feeding behavior monitoring while minimizing the likelihood of collisions of thecamera 140 with thesubfeeder 131. -
FIG. 2 depicts anexample system 200 for performing the operations according to the implementations of the present disclosure. Thesystem 200 can be implemented by a combination of hardware, software and firmware. - The
system 200 can include acamera 260 for capturing image and video data (e.g., an image of a scene). In place of thecamera 260, any device, or combination of devices, that are capable of generating image and video data can be used. Thesystem 200 further includes acamera interface 250 communicatively coupled to thecamera 260. Thecamera interface 250 can receive image and video data from thecamera 260 and provide it as an input to other components of thesystem 200. - The
system 200 further includes aposition database 280 communicatively coupled to aposition estimator 230. Theposition database 280 stores information about an absolute position (or an estimate) of a subfeeder (e.g., thesubfeeder 131 inFIG. 1 ). For example, theposition database 280 can receive measurements from a device coupled to the subfeeder 131 (e.g., a GPS device, a position encoder coupled to a winch and thesubfeeder 131 by a winch line, or any other appropriate device), determine its position, and store the position information. - Alternatively, the absolute position information of the subfeeder can be provided to the
position database 280 manually by an operator. Theposition database 280 can also include information about an absolute position of thecamera 260. The absolute position of the camera can be determined by e.g., obtaining data from a GPS attached to thecamera 260, measuring a length of a winch line that is coupled to thecamera 260 and spooled out from a winch, or any other suitable means. The information in theposition database 280 can be used by theposition estimator 230 to determine a current position of thecamera 140 relative to thesubfeeder 131, and estimate an updated position of thecamera 140 relative to thesubfeeder 131. - The
system 200 further includes aspatial model database 240 communicatively coupled to theposition estimator 230. Thespatial model database 240 can include a spatial model that contains specifications of the subfeeder (e.g., thesubfeeder 131 inFIG. 1 ). The spatial model can be a digital model, such as a computer aided design (CAD) model that can be manipulated, e.g., tilted in an arbitrary angle. Each different type of subfeeder (e.g., a subfeeder with a square perimeter, a subfeeder with a circular perimeter, and any other type of subfeeder) can have a corresponding spatial model associated with it. The spatial model can include metadata information about identity, characteristics, and/or visual appearance such as size, configuration, and different orientations, of the subfeeder that the model represents. In some implementations, the spatial model can include information about physical characteristics, such as center of gravity and/or different axis, of the respective subfeeder. Further, the spatial model can contain information about a particular type of subfeeder including non-visible features, such as temperature, magnetic field, etc. of different parts of the subfeeder. - The
position estimator 230 can receive position information from theposition database 280, spatial model information of the subfeeder from thespatial model database 240, and the image of the scene obtained by thecamera 260, and determine a current position of the camera relative to the subfeeder (e.g., position A inFIG. 1 ). As described above, the spatial model can be used by theposition estimator 230 to generate different candidate images for different orientations and/or angular positions of the subfeeder. Each candidate image can represent an angular view of the subfeeder that is represented by the spatial model. These candidate images can be used to identify the subfeeder that is oblique in the image of the scene obtained by thecamera 260, because the candidate images provide a variety of positions, orientations, and angular views of the subfeeder. - The
position estimator 230 can select a candidate image of the subfeeder that presents the angular view of the subfeeder that is substantially similar to the angular view (e.g., orientation) of the subfeeder in the image of the scene obtained by thecamera 260. Theposition estimator 230 can use the candidate image, the information contained in the spatial model, and calibration parameters of thecamera 260, to correlate the size and the position of the subfeeder within the image of the scene. - For example, based on the spatial model of the subfeeder, the orientation of the subfeeder in the candidate image, and a number of pixels that the subfeeder occupies in the image of the scene, a depth of the subfeeder can be estimated. The depth of the subfeeder can indicate a distance from the subfeeder to the
camera 260 that obtained the image of the scene. On this basis, the position estimator can determine the position of the camera relative to the subfeeder (e.g., to afeeding point 133 of thesubfeeder 131 inFIG. 1 ). - The
position estimator 230 can estimate an updated position (e.g., position B inFIG. 1 ) of the camera relative to the subfeeder. The updated position can be estimated in a similar way as described above. For example, theposition estimator 230 can select a second different candidate image of the subfeeder that presents the angular view of the subfeeder that is substantially similar to the angular view (e.g., orientation) of the subfeeder in a second different image of the scene obtained by thecamera 140 at the updated position. The system can use the second candidate image of the subfeeder, the information contained in the spatial model of the subfeeder, and calibration parameters of the camera, to correlate the size and the position of the subfeeder within the second image of the scene obtained by thecamera 260. On this basis, theposition estimator 230 can estimate the updated position of thecamera 260 relative to the subfeeder. In other implementations, theposition estimator 230 can use the information about the current position of thecamera 260 relative to the subfeeder, and information about the absolute position of the subfeeder stored in theposition database 280, to estimate an updated position of thecamera 260 relative to the subfeeder. - In this way, the
position estimator 230 can estimate an optimal position of thecamera 260 for the particular type of subfeeder, thereby reducing the likelihood of collision damage to thecamera 260 while ensuring effective feeding behavior monitoring. - The
position estimator 230 can provide a command to thewinch controller 220 to move the camera to the updated position. The winch controller, in turn, can operate themotor 270 to move the camera, in a similar way as described above with reference toFIG. 1 , to the updated position. - Further, the
position estimator 230 can dynamically estimate an updated position of thecamera 260 relative to the subfeeder. For example, thecamera 260 can continuously generate image and video data and provide it to theposition estimator 230, and theposition estimator 230 can iteratively estimate the current position of thecamera 260 relative to the subfeeder. At each iteration, theposition estimator 230 can estimate an updated position of thecamera 260 relative to the subfeeder, in a similar way as described above, and provide it to thewinch controller 220, that can engage themotor 270 to move thecamera 260 to the updated position at each iteration. In some implementations, theposition estimator 230 can iteratively estimate an updated position of thecamera 260 relative to the subfeeder based on the current position of thecamera 260 relative to the subfeeder and the absolute position of the subfeeder obtained from theposition database 280. - In this way, the
system 200 can dynamically adjust the position of thecamera 260 relative to the subfeeder, when the subfeeder (or the camera, or both) undergoes a change in position due to the influence of e.g., wind, or strong ocean currents. This, in turn, enables thesystem 200 to prevent collisions of the camera with the subfeeder and to provide optimal positioning of thecamera 260 for effective feeding behavior monitoring. -
FIG. 3 depicts anexample process 300 that can be executed in accordance with the implementations of the present disclosure. In some implementations, theexample process 300 can be performed using one or more computer-executable programs executed using one or more computing devices. Theprocess 300 can be performed by thesystem 200 depicted inFIG. 2 . - The system obtains, by one or more cameras of a control system, an image of a scene (302). The scene can include, for example, a view of the subfeeder, as shown by location A in
FIG. 1 . - The system obtains, by the position estimator, a spatial model that corresponds to the subfeeder, the spatial model being obtained from the database of spatial models (304). As described above, each different type of subfeeder can include a corresponding spatial model containing specifications of the subfeeder.
- The system determines, by the position estimator, based on data from the spatial model and the image of the scene, a current position of the one or more cameras relative to the subfeeder (306). In some implementations, the system can receive a calibration information of one or more cameras by the position estimator and correlate the spatial model of the subfeeder within the image of the scene with the calibration information of the one or more cameras. In some implementations, the subfeeder within the image of the scene can be partially obscured by another object (e.g., fish), and the system can check the spatial model to determine the relevant information about the subfeeder that is not present in the image of the scene due to the obstruction. The spatial model can indicate metadata of the subfeeder, including a dimension of a portion of the subfeeder that is not discernable from the image of the scene.
- The system selects, by the position estimator, an updated position of the one or more cameras relative to the subfeeder (308). The system can dynamically select the updated position of the one or more cameras relative to the subfeeder. As described above, the system can iteratively determine the updated position of the camera relative to the subfeeder based on images obtained from the camera. The updated position can include a preferred position of the one or more cameras relative to the subfeeder associated with the spatial model of the subfeeder. In some implementations, the system can determine the updated position so as to avoid a sharp corner of the subfeeder while positioning the camera in close proximity to the subfeeder. In another implementation, the system can determine the updated position to be proximal to a feeding point of a particular type of subfeeder. If the system determines that at the current position of the one or more cameras relative to the subfeeder a feed is not visible within the image of the scene, the system can select the updated position of the one or more cameras relative to the subfeeder such that the feed is visible within the image of the scene. The updated position of the one or more cameras relative to the subfeeder can be located, for example, at a depth of 1 meter or less below a feeding point of the subfeeder.
- The system provides, by the position estimator, the updated position of the one or more cameras relative to the subfeeder to the winch controller (308).
- The system moves (310), by the winch controller, the one or more cameras to the updated position. As described above, the winch controller can engage the motor and move the camera to the updated position. Accordingly, the
system 200 can position the camera to enable effective feeding behavior monitoring while minimizing the likelihood of collisions of the camera with the feeding system. - The features described may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus may be implemented in a computer program product tangibly embodied in an information carrier (e.g., in a machine-readable storage device) for execution by a programmable processor; and method steps may be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features may be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that may be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer may also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example 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. The processor and the memory may be supplemented by, or incorporated in, application-specific integrated circuits (ASICs).
- To provide for interaction with a user, the features may be implemented on a computer having a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user may provide input to the computer.
- The features may be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system may be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a local area network (LAN), a wide area network (WAN), and the computers and networks forming the Internet.
- The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
- A number of implementations of the present disclosure have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the present disclosure. Accordingly, other implementations are within the scope of the following claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/206,542 US20230388639A1 (en) | 2021-05-03 | 2023-06-06 | Automated camera positioning for feeding behavior monitoring |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/246,911 US11297247B1 (en) | 2021-05-03 | 2021-05-03 | Automated camera positioning for feeding behavior monitoring |
US17/691,902 US11711617B2 (en) | 2021-05-03 | 2022-03-10 | Automated camera positioning for feeding behavior monitoring |
US18/206,542 US20230388639A1 (en) | 2021-05-03 | 2023-06-06 | Automated camera positioning for feeding behavior monitoring |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/691,902 Continuation US11711617B2 (en) | 2021-05-03 | 2022-03-10 | Automated camera positioning for feeding behavior monitoring |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230388639A1 true US20230388639A1 (en) | 2023-11-30 |
Family
ID=81384762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/206,542 Pending US20230388639A1 (en) | 2021-05-03 | 2023-06-06 | Automated camera positioning for feeding behavior monitoring |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230388639A1 (en) |
EP (1) | EP4312527A1 (en) |
WO (1) | WO2022235352A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170013810A1 (en) * | 2015-03-24 | 2017-01-19 | Herb GRABELL | Portable agrarian biosystem |
US20200323183A1 (en) * | 2017-10-25 | 2020-10-15 | Tau Tech As | Fishing tool for bottom-dwelling marine organisms, for fishing iceland scallops, other scallops and potentially other bottom species such as sea cucumbers, sea urchins, other types of shellfish and species of crab |
US20230284600A1 (en) * | 2020-08-05 | 2023-09-14 | Rynan Technologies Pte. Ltd. | Smart aquaculture grow out system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020046524A1 (en) * | 2018-08-27 | 2020-03-05 | Aquabyte, Inc. | Automatic feed pellet monitoring based on camera footage in an aquaculture environment |
US11659819B2 (en) * | 2018-10-05 | 2023-05-30 | X Development Llc | Sensor positioning system |
-
2022
- 2022-03-29 EP EP22718378.7A patent/EP4312527A1/en active Pending
- 2022-03-29 WO PCT/US2022/022250 patent/WO2022235352A1/en active Application Filing
-
2023
- 2023-06-06 US US18/206,542 patent/US20230388639A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170013810A1 (en) * | 2015-03-24 | 2017-01-19 | Herb GRABELL | Portable agrarian biosystem |
US20200323183A1 (en) * | 2017-10-25 | 2020-10-15 | Tau Tech As | Fishing tool for bottom-dwelling marine organisms, for fishing iceland scallops, other scallops and potentially other bottom species such as sea cucumbers, sea urchins, other types of shellfish and species of crab |
US20230284600A1 (en) * | 2020-08-05 | 2023-09-14 | Rynan Technologies Pte. Ltd. | Smart aquaculture grow out system |
Also Published As
Publication number | Publication date |
---|---|
WO2022235352A1 (en) | 2022-11-10 |
EP4312527A1 (en) | 2024-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11711617B2 (en) | Automated camera positioning for feeding behavior monitoring | |
EP4005376B1 (en) | Sensor positioning system for an aquaculture system | |
US11825816B2 (en) | Camera controller for aquaculture behavior observation | |
EP3843542B1 (en) | Optimal feeding based on signals in an aquaculture environment | |
WO2020046524A1 (en) | Automatic feed pellet monitoring based on camera footage in an aquaculture environment | |
US20240348926A1 (en) | Camera winch control for dynamic monitoring | |
WO2023287524A1 (en) | Camera calibration for feeding behavior monitoring | |
US20230230409A1 (en) | Image processing-based weight estimation for aquaculture | |
EP4205028A1 (en) | Visual detection of haloclines | |
US20230388639A1 (en) | Automated camera positioning for feeding behavior monitoring | |
US20230172169A1 (en) | Underwater feed movement detection | |
US20240126145A1 (en) | Underwater camera system controller for aquaculture behavior observation | |
US20220394957A1 (en) | Sensor data processing | |
US20230306734A1 (en) | Turbidity determination using machine learning | |
WO2023069203A1 (en) | Marine sensor platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: X DEVELOPMENT LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JAMES, BARNABY JOHN;BRENTANO, GRACE TAIXI;CHROBAK, LAURA VALENTINE;AND OTHERS;SIGNING DATES FROM 20210426 TO 20210609;REEL/FRAME:063947/0333 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: TIDALX AI INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:X DEVELOPMENT LLC;REEL/FRAME:068477/0306 Effective date: 20240712 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |