Apparatus and methods of biomass estimation
The camera system with multiple 2D and 3D cameras captures images from different directions to address data loss and training challenges, enhancing biomass estimation accuracy and efficiency in underwater environments.
Patent Information
- Authority / Receiving Office
- GB · GB
- Patent Type
- Applications
- Current Assignee / Owner
- ACE AQUATEC
- Filing Date
- 2023-09-11
- Publication Date
- 2026-05-20
AI Technical Summary
Existing methods for estimating biomass of freely movable objects like fish in underwater environments face challenges due to immense data processing requirements, significant data loss from poor quality and occlusion, and the need for farm-specific machine learning algorithms, leading to inaccurate and time-consuming biomass estimation.
A camera system with multiple 2D and 3D cameras positioned to capture images from different lateral directions, utilizing machine learning tools for object detection and tracking, and integrating clustering techniques to enhance data accuracy and reduce data loss.
The system provides more accurate and efficient biomass estimation by minimizing data loss and improving machine learning algorithm training through multi-directional imaging, enabling rapid improvement in estimation accuracy and reducing the time required for weight estimation.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Field of the Invention The invention relates to apparatus (e.g. systems) and methods of biomass estimation of freely movable objects such as fish in an underwater environment. Background Biomass estimation offish in real time in fish pens and cages remains challenging. One example is FISHSCAN EU FP7-SME Project No 262323 2012 which attempted to use image recognition techniques to estimate the mass of fish in pens. SHORTIS et al in 2013 in ‘A review of techniques for the identification and measurement of fish in underwater stereo-video image sequences’ SPIE 8791, Videometrics, Range Imaging, and Applications XII; and Automated Visual Inspection, 87910G (23 May 2013); doi: 10.1117 / 12.2020941 describe a wide review of the technology and techniques including stereo vision using two cameras and a proposed approach for further investigation based on a synthesis of the (then) current approaches. This included establishing a training set of images and capturing background, validating candidate regions as fish, and updating the background using the non-fish areas, and repeating, and using a Kalman filter using feature vectors and colour space matching to track fish and repeating the surface shape measurement and reconciling this within a definable template model to refine accuracy and reliability of the surface model generation. Problems with this approach include the huge amount of data that needs to be processed, and the significant amounts of data that are discarded. Another example is P. C. Naval and L. T. David, ‘FishDrop: Estimation of reef fish population density and biomass using stereo cameras,’ 2016 Techno-Ocean (Techno-Ocean), Kobe, Japan, 2016, pp. 527-531, doi: 10.1109 / Techno-Ocean.2016.7890710 FISHDROP Prospero et al 2016, Techno-Ocean 2016, a project which attempted to estimate biomass in the oceans. Use of point cloud data in general in determining biomass of fish is known. WO2019232247 SHANG AQUABYTE describes biomass estimation in an aquaculture environment using an immersed stereo camera system that captures stereo images of freely moving fish and automatically identifies and estimates specific combinations of fin to fin, body depth, and length dimensions, that are learned from the stereo images to predict weight with a high degree of accuracy. The system uses ‘a trained convolutional neural network to classify an image region of a digital image, of the pair of digital images, as containing an image of a fish; cropping the digital image to the image region to generate a cropped image; identifying a plurality of landmark points on the fish within the cropped image; determining a plurality of disparity map values corresponding to at least the plurality of landmark points; based on the plurality of disparity map values, calculating one or more morphological body dimensions of the fish; and computing a weight of the fish based on the one or more morphological body dimensions’. ‘As an alternative, instead of calculating the truss and I or conventional dimensions, weight predictor 318 may generate a 3-D point cloud object from the 3-D world coordinates. The volume of the fish may be estimated from the 3-D point cloud and then the weight predicting based on the estimated volume and a predetermined density or density distribution of the fish. For example, the predetermined density may be a known average density or density distribution of Atlantic Salmon.’ SHANG also explains, the weight of a fish may be estimated based on distances between landmark points and landmark areas segmented from an image of the fish combined with a depth map, the weight of a fish may be predicted by combining an image segmentation mask of the entire fish with a depth map for the image to obtain a three-dimensional point cloud for the pixels in the image representing the fish in the image according to the image segmentation mask. The volume of the fish may then be estimated from the point cloud. In particular, SHANG proposes, following image filtration, using a base image of a stereo image to detect fish in the input base image and produces image segmentation masks of one or more landmark points or areas in the base image. A stereo matching and occlusion handling system outputs a disparity map for the base image of the stereo pair and 3D points of pixels from the input disparity map corresponding to landmark points or areas are used to predict the weight of fish. SHANG also describes combining the depth map output from the stereo matching and occlusion system with the image segmentation mask generated by the object detection and image segmentation system, e.g. pixel by pixel, to determine the 3D (Cartesian) coordinates of landmark points and / or landmark areas. Thus, SHANG may discard images in the image filtration system and / or in later object detection and image segmentation system if no fish is detected. To address occlusions, a convolutional neural network may be trained to learn a similarity measure and match images. Alternatively, the output of the depth mapping algorithm, or the tracking boundary box size overtime, may be used. Some have proposed object detection using a trained machine learning-based algorithm such as a Haar classifier trained on many positive and negative images, the trained model then being used to detect objects in images. One approach is to identify (tag) known features in fish such as at least snout and tail, optionally, one or more of nose, tail, dorsal fin, bottom fin, or even an entire fish. One of the challenges remaining in object measurement e.g. of length and / or height and so biomass of fish, is the challenge of determining these dimensions absolutely. A small fish close up looks the same in the image as a large fish far away. One solution is the use of depth cameras such as time of flight cameras (see GB82539495 PYNE CARTER) or stereo cameras (See BEDDOW et al ‘Predicting Salmon Biomass remotely using a digital stereo imaging technique’ in Aquaculture 146 (1996) 189-203). Even recently, WO2019232247 SHANG proposed using 3D point of cloud as an alternative. More recently, LI et al in ‘Nonintrusive methods for biomass estimation in aquaculture with emphasis on fish: a review’ in Reviews in Aquaculture (2020) 12, 1390-1411 reviewed the various methods and technologies carried out over the years. This document reviews machine vision biomass estimation and mentions 3D but not point of cloud specifically. It provides an overview of machine vision using stereoscopic techniques, or infrared light, explaining it can be used to identify position in 3D space but fish occlusion remains a problem as does tracking of fish across images. It is significant that, despite the intense effort over the years, a practical system remains a challenge. Use of clustering based on intensity or texture or colour has been applied in image recognition, but in this field occlusions remain a problem. Indeed, image recognition using clustering techniques in general are known, for example ‘A density-based algorithm for discovering cluster’ ESTER et al 1996 KDD-96 Proceedings, AAAI (www.aaai.org), known as DBSCAN (Density Based Spatial Clustering of Applications with Noise) clustering in which, for ‘each point of a cluster the neighbourhood of a given radius has to contain at least a minimum number of points i.e. the density in the neighbourhood has to exceed some threshold’. WO2019232247 SHANG describes two processes which feed into their weight predictor. A first process called ‘object detection and image segmentation’ uses machine learning to identify boundary boxes and / or segmentation masks of fish based on a two-dimensional (2D) input image (x, y co-ordinates). This uses intensity as a measure for sub-selection of boundary boxes and / or segmentation masks representing fish etc. Amongst other problems, this suffers from a ‘segmentation mask (and / or boundary box) occlusion problem’, when one fish occludes another in the x, y coordinate plane. In such a case the correspondence (e.g. in intensity) between neighbouring pixels sought by the machine learning model is poor, and a segmentation mask of a fish, or a boundary box, for a fish is not identified, or is inaccurately sized and / or shaped. The data is, therefore, flawed and / or incomplete and may need to be discarded. The second process is the ‘stereo matching and occlusion handling’ process in which a stereo pair of images are matched pixel by pixel to develop a disparity map, again pixel by pixel, from which x, y, z coordinates of each pixel can be developed (e.g. using well-known geometric constructions). This suffers from a ‘stereo matching occlusion problem’ in which each individual one of a pair of stereo cameras necessarily see a slightly different view and from one viewpoint one fish may occlude another, whereas from the other viewpoint it may not. This is difficult to resolve in the disparity map. The data may, therefore, be incomplete and may need to be discarded. It is to be remembered that these processes are applied to every frame. Thus, there is a large amount of data to sift through. Indeed, a large amount of data may have to be discarded. Other issues may arise which also result in discarding of data e.g. changing light, turbidity and / or speckle, water temperature and so on, resulting in contamination of, or incomplete, images overtime. Typically, an initial machine learning algorithm has been trained to operate on ‘ideal’ images to produce segmentation masks and / or boundary boxes. If real images can be used to further the training of the initial algorithm, a more accurate machine learning algorithm may be produced. Where data is discarded, this later training to improve accuracy in the machine learning algorithm can take much longer. This is undesirable. Indeed, it has been appreciated by the present inventor that is not enough for a machine learning algorithm that detects boundary boxes and / or segmentation masks to be trained beforehand e.g. under ideal or factory conditions, because this does not reflect real world conditions in fish pens. Further, each fish pen or cage may experience different conditions of weather, light, turbidity etc. although closely located fish pens / cages may experience very similar conditions. A machine learning algorithm may, therefore, be fish farm-dependent on even individual fish pen-dependent. Having to discard images that could be useful in such local training is, therefore, problematic. The additional time needed to collect further data that meets criteria for input into the revised machine learning algorithm training is, therefore, problematic. Thus historically, automated fish length detection uses stereo cameras in 2D, in which two 2D cameras capture the fish at slightly offset angles. This offset provides the means to triangulate a point on the object. Using trained machine learning, the systems may be able to identify a species of fish through having been trained to recognise features such as number and position of fins and the face. The training may instead, or in addition, be extended to the formation of a fish boundary box or even boundary box identification of salient features such as tail fin, eye or nose, top, dorsal, anal fins in 2D images. A point within a key feature box may then be chosen and a ‘z’ co-ordinate from a stereo image then provides the distance of this pixel from the camera, alongside the x and y coordinates. This may then be used to calculate the length and height of the fish. Previous time of flight or stereo cameras for monitoring fish weight utilised simple edge processing with box tagging A.I. of fins, eyes, and tail to provide weight measurements. This has limitations. The accuracy and ability to train models relies on significant quantities of images. While one or multiple cameras can be deployed, they all have a limited field of view, and therefore machine learning algorithms reject the bulk of images, keeping around 5% of images, despite numerous e.g. 1 to 2 hundred images being captured every second. Attempts have been made to design winches that can move the cameras through the pens, however complex mechanical systems in this volatile environment have failed to provide stable images or be durable enough. Challenges and problems remain in the art, some of which are outlined above and elsewhere in this document. The present invention seeks to alleviate or improve matters in respect of one or more of these challenges or problems. The present invention seeks to alleviate one or more of the above problems. A different approach may be helpful and is proposed. Statements of the Invention In a first aspect of the invention there is provided a camera system for estimating biomass of freely swimming objects, e.g. fish in a pen (e.g. in an aquaculture environment), comprising: at least two camera modules, a first camera module for immersion underwater in a pen having at least one 3D camera, and, a second camera module for immersion underwater in a pen having at least one 3D camera; the first camera module facing outwards in a first lateral direction; the second camera module facing outwards in a second lateral direction (e.g. different from the first lateral direction, e.g. in the same horizontal plane) whereby at least the first and second camera modules capture images in different lateral directions. In a second aspect there is provided a method of estimating the biomass of freely movable objects using the camera system as described herein comprising, in an image processing system comprising one or more microprocessors and a storage media, the storage media comprising one or more programs configured for execution on the one or more microprocessors, the one or more programs comprising instructions to perform the method of: - in a first camera module, capturing at least one 3D image (also known as a depth map) of the first field of view (e.g. substantially or mostly the same field of view as a separate 2D camera, where provided) from a 3D camera; - in a second camera module, capturing at least one 3D image (also known as a depth map) of the second field of view (e.g. substantially or mostly the same field of view as a separate 2D camera, where provided) from a 3D camera; - detecting objects (e.g. using machine learning tools such neural networks (e.g. Region Proposal Network (RPN), Faster R-CNN, Mask R-CNN and / or using clustering tools such as DBSCAN and / or using corresponding pixels from a corresponding 2D image, where provided) in 3D images in the first and second field of view (e.g. from the 3D camera, which may be a stereo camera or a time-of-flight camera); - determining if an object is a fish, and if it is a fish, tracking the object in images across a plurality of frames (e.g. individual images) in one camera module, or more preferably across two or more camera modules; - determining a (e.g. at least one) dimension of a tracked object in a plurality of frames in the images; - estimating the mass of the tracked object from the determined dimension. In one or more embodiments, the camera system comprises in the first camera module at least one 2D camera; and, in the second camera module, at least one 2D camera; at least the first and second camera modules being configured so that the 2D and 3D cameras of that respective camera module have overlapping fields of view (preferably, generally or substantially overlapping fields of view) from that camera module (e.g. preferably from a substantially lateral perspective, in other words, in use, in a substantially horizontal direction about a substantially vertical axis). In one or more embodiments, the 2D camera in at least one camera module is separate from the 3D camera in that (e.g. the at least one) camera module. In some preferred embodiments, a separate 2D camera is provided in some or all camera modules. In other embodiments, one of the 2D cameras of a 2x2D stereo (3D) camera may be used, in which case this is not a separate 2D camera, forming instead part of the stereo 3D camera. In one or more embodiments the camera system comprises two, three, or four camera modules, each camera module for immersion underwater in a pen and having at least one 2D camera and at least one 3D camera; each camera module preferably being configured so that the 2D and 3D cameras of that camera module have overlapping fields of view (e.g. from that camera module) (preferably, generally or substantially overlapping fields of view e.g. preferably from a substantially lateral perspective in other words, in use, in a substantially horizontal direction about a substantially vertical axis); each camera module preferably facing outwards (e.g. in a lateral direction at preferably 90° approximately to a main plane of a front face of a camera module) in a respective lateral direction (e.g. in the same horizontal plane) whereby each of the two, three, or four camera modules capture images in different lateral directions. In one or more embodiments, each camera module may be configured such that its respective lateral direction is at (e.g. approximately) an angle of 45°, or 60°, or 90°, or 120°, or 180°, or at least 60°, or at least 90°, or at least 120° to the lateral direction of at least one neighbouring camera module. Preferably, the first and second lateral directions, and any further lateral directions corresponding to any further outwardly facing camera modules provided, are from a common centre and / or lie along respective radii of a common circle. Preferably, the camera modules are equispaced about a common centre. The height of the field of view of each camera in a camera module in a vertical direction preferably overlap each other over a sufficient range for the size of the pen, e.g. 1 or 2 or even 3, 4 or 5 metres (e.g. in height below the surface). Typically, the cameras in the camera modules are each designed to view a few metres e.g. 1 to 3 metres in height of the water column, preferably approximately the same view. Thus, the cameras within a camera module have substantially overlapping fields of view in the vertical direction also. If greater height is needed, a second camera system can be provided in the water column below the first which is, preferably, identical to the first. Preferably, the camera modules face outwards about a common periphery and / or about a common centre thereby being configured to capture different, preferably overlapping, views of the internal volume of a fish pen, the views from respective camera modules forming at least part of, preferably, a 360° lateral view of the internal volume of a fish pen, which preferably extends vertically over at least about 1 to 2 metres, or even more as above. In one or more embodiments, in at least one camera module (preferably all camera modules), the 3D camera is separate from the 2D camera and may lie above or below e.g. in line with (preferably vertically above, or less preferably below (e.g. vertically below) the 2D camera. Underwater light, e.g. blue or green lights e.g. at wavelengths as described in GB2539495 PYNE CARTER, may be provided, preferably along the same vertical axis as the camera module, or (e.g. symmetrically) placed either side of it. In one or more embodiments, within at least one camera module (preferably all camera modules), the field of view of the 2D and 3D cameras in the camera modules may generally, or substantially, overlap; and / or, the lateral extent of the field of view of the 2D and 3D cameras may generally, or substantially, be the same. In one or more embodiments, three camera modules may be provided arranged in a triangular manner (e.g. in a triangle shape when viewed from above such as an equilateral triangle with each face, or rather each direction associated with each front face of a camera module, at 120° to the other). In one or more embodiments, four camera modules may be provided arranged in a quadrilateral manner (e.g. in a quadrilateral shape when viewed from above, such as a square, rectangle). In this case, the faces and the associated directions of each face may be at 90° to each other. In one or more embodiments, the lateral field of view of each camera module around the pen may overlap with the field of view of one or more neighbouring camera modules. This means that corresponding frames that are taken at the same time and / or during the same session, but in different camera modules, have overlapping regions that are more easily stitched together. Thus, it is more likely that the same fish can be tracked over two or more camera modules. The camera system may comprise a main body which houses the camera modules in rigid, fixed relation to one another. The main body may have rounded and / or cut off corners to facilitate a wider field of view from the camera modules and / or to facilitate sufficient overlapping from one camera module to the next, for the camera modules provided, to provide a desired overall width of the overall field of view of the camera system. Preferably the width of the overall field of view of the camera system is at least 180°, or more preferably at least 270°, or more preferably 360° (e.g. in the same horizontal plane about a vertical axis looking outwards). In one or more embodiments, the 2D camera may be a high-definition (also known as high resolution) camera. Typically, these have upwards of 12 megapixels). It may be HD and RGB, or HD and monochrome. In one or more embodiments, the 2D camera may be a colour (e.g. RGB) camera. In one or more embodiments, the 3D camera may be a stereo camera (e.g. comprising 2x2D cameras such as 2x2D low resolution, monochrome cameras of resolution of 12 megapixels or lower, typically 8 megapixels or lower). In one or more embodiments, the 3D camera may be a time-of-flight camera. The 3D camera may be a time-of-flight camera e.g. such as that described in GB2539495 PYNE CARTER. In one or more embodiments, the system may comprise an image processing system of, or operatively coupled to, at least the first and / or second camera modules and / or any further camera modules, and the image processing system may comprise: - one or more microprocessors; and, - a storage media comprising one or more programs configured for execution on the one or more microprocessors, the one or more programs comprising instructions configured for: - in a first camera module, capturing at least one 3D image (also known as a depth map) of the first field of view (e.g. substantially or mostly the same field of view as a 2D camera) from a 3D camera; - in a second camera module, capturing at least one 3D image (also known as a depth map) of the second field of view (e.g. substantially or mostly the same field of view as a 2D camera) from a 3D camera; - detecting objects (e.g. using machine learning tools such neural networks (e.g. Region Proposal Network (RPN), Faster R-CNN, Mask R-CNN and / or using clustering tools such as DBSCAN and / or using corresponding pixels from a corresponding 2D image) in 3D images in the first and second field of view (e.g. from the 3D camera, which may be a stereo camera or a time-of-flight camera); - determining if an object is a fish, and if it is a fish, tracking the object in images across a plurality of frames (e.g. individual images) in one camera module; - determining a dimension of a tracked object in a plurality of frames in the images; - estimating the mass of the tracked object from the determined dimension. In one or more embodiments, the system may comprise the one or more programs comprising instructions configured for: - in the first camera module, capturing at least one 2D image of a first field of view from a 2D camera; - in the second camera module, capturing at least one 2D image of a second field of view from a 2D camera; - detecting objects (e.g. using machine learning tools such neural networks (e.g. Region Proposal Network (RPN), Faster R-CNN, Mask R-CNN and / or using clustering tools such as DBSCAN) in the 2D images in the first and second field of view (preferably from a separate (e.g. HD) 2D camera, or less preferably, where a stereo camera is provided, from one of the 2D cameras of the stereo camera); - determining if an object is a fish, and if it is a fish, tracking the object in 2D and / or 3D images across a plurality of frames (e.g. individual images) in one camera module; - determining a dimension of a tracked object in a plurality of frames in the 2D and / or 3D images; - estimating the mass of the tracked object from the determined dimension. The number of frames across which tracking takes place may be 2 frames (e.g. from camera module, or, more preferably, one from each of the first and second camera modules) but is preferably 3 or more frames, more preferably 5 to 10 frames. In one or more embodiments, the method may comprise: - in the first camera module, capturing at least one 2D image of a first field of view from a 2D camera; - in the second camera module, capturing at least one 2D image of a second field of view from a 2D camera; - detecting objects (e.g. using machine learning tools such neural networks (e.g. Region Proposal Network (RPN), Faster R-CNN, Mask R-CNN and / or using clustering tools such as DBSCAN)) in the 2D images in the first and second field of view (preferably from a separate (e.g. HD) 2D camera, or less preferably, where a stereo camera is provided, from one of the 2D cameras of the stereo camera); - determining if an object is a fish, and if it is a fish, tracking the object in 2D and / or 3D images across a plurality of frames (e.g. individual images) in one camera module; - determining a dimension of a tracked object in a plurality of frames in the 2D and / or 3D images; - estimating the mass of the tracked object from the determined dimension. In one or more embodiments, the step of tracking may be carried out across image frames from the first and the second camera module (e.g. at least one from each). In one or more embodiments, the method may comprise: where the dimension is a length of a line, determining the depth of one or more pixels at the end of the line, and determining the depth of at least one neighbouring pixels (e.g. in generally, or substantially, the same direction as the line), and comparing these, and if the result of the comparison is less than a predetermined amount, adding a pixel to the line (e.g. in generally, or substantially, the same direction as the line). These one or more steps may be repeated as required, until the comparison is less than the predetermined amount. Preferably, the method comprises the step of adjusting the selection of pixels representing the one or more landmark points and / or surface lines (e.g. ends of surface lines) if the difference in depth of predetermined neighbouring pixels (e.g. selected by segmentation in the 2D image and / or in the 3D image) is less than a predetermined amount (e.g. <5cm, or <10cm, or <15cm, or an average width of 100 fish of that species at that stage, e.g. adult). Preferably, the predetermined amount is <10cm. In one or more embodiments, the method may comprise: using a segmentation mask in a 2D image to identify corresponding pixels in a 3D image (e.g. for area - within the outline of the mask; for length and / or height - along a line; for image validation at one or more pixels associated with one or more key points (e.g. key points identified in a 2D image)) and determining the dimension from the segmentation mask in the 3D image and from the depth map (e.g. in other words so that the values of depth provide a more accurate measure of the dimension). In one or more embodiments, the method may comprise: - selecting one or more of the determined dimensions of a tracked object in multiple frames in 2D and / or 3D images to determine biomass by determining the quality of the one or more determined dimensions, by one or more of: a) comparing the determined dimension across multiple frames and selecting most likely (e.g. the longest or shortest or least curved or most horizontal or least variable across frames etc.); b) comparing the dimension determined from a 2D image with the corresponding dimension determined in a corresponding frame in a corresponding 3D image taking into account depth (i.e. the width or thickness of the fish) and selecting the determined dimension in the 3D image if the corresponding determined dimension in the 2D image is shorter (typically if the dimension in the 2D image is longer this indicates an error). if the quality of the determined dimension is sufficient, estimating the mass of the object, and if the quality of the determined dimension is insufficient, discarding the data. In one or more embodiments, the method may comprise: - identifying a plurality of (i.e. two or more) landmark points and / or one or more body surface lines within the image of the fish on the depth map; - determining one or more body dimensions of the fish using the plurality of landmark points and / or one or more surface lines, and, based on the one or more body dimensions, estimating a mass of the fish. In one or more embodiments, - the step of detecting objects in 2D may comprise tagging and / or segmenting objects in 2D images from a 2D camera (e.g. using intensity or texture or colour etc), optionally from a 2D camera separate from the 3D camera. In one or more embodiments, - the step of detecting objects in 3D may comprise tagging and / or segmenting objects in 3D images (e.g. using depth or indeed using depth and / or using intensity and / or texture and / or colour). In one or more embodiments, a stereo camera may be provided and the method may further comprise: i) obtaining and storing a pair of digital images captured by, or derived from digital images captured by, the stereo camera; ii) matching pixels between pairs of digital images; iii) producing a disparity map; iv) using the disparity map to determine a depth map (e.g. a point cloud); v) using a trained machine learning tool, (e.g. convolutional neural network), to classify a region of the depth map, (e.g. as containing an image of a fish; optionally, cropping the digital image to the image region to generate a cropped image). In one or more embodiments, the method may comprise: using machine learning to identify relevant pixel groupings representing the depth image in an identified track and / or object from a 2D and / or 3D image. Several embodiments of the invention are described and any one or more features of any one or more embodiments may be used in any one or more aspects of the invention as described above. Brief Description of the Invention The present invention will now be described, by way of example only, with reference to the following figures. Figure 1A shows a perspective view of a first camera system in one example embodiment of the invention. Figure 1B shows a plan view of the camera system of Figure 1A from above. Figure 2A shows a perspective view of a camera system according to one example embodiment of the invention. Figure 2B shows a plan view of the camera system of Figure 2A from above. Figure 3 shows a plan view from above of a fish pen with the camera system according to an example embodiment of the invention located centrally within the pen. Figure 4 shows a schematic representation side elevation of the fish pen of Figure 3. Figure 5 shows overview steps of a method of determining one or more dimensions of freely movable objects underwater such as fish. Figure 6 shows a method of object detection using 2D and / or 3D images, preferably both. Figure 7 shows a method of tracking an object in a series of image frames using a global tracker. Figure 8 shows a method of estimating a dimension of a freely movable object such as a fish. Figure 9 shows a schematic system overview of a camera system and method according to one or more example embodiments of the invention. Figure 10A shows, respectively, a depth image offish in water. Figure 10B shows the result of clustering analysis (e.g. DBSCAN) of the data of Figure 10A, in other words a cropped outline of a fish in a depth map. Detailed Description of the Invention It will be understood by those skilled in the art that any dimensions and relative orientations such as lower and higher, above and below, and any directions, such as vertical, horizontal, upper, lower, axial, radial, longitudinal, tangential, etc., and any angles etc. referred to in this application are within expected structural tolerances and limits for the technical field, and for the apparatus and methods described, and these should be interpreted with this in mind. In this document reference is made to fish but it will be understood that this could apply to other freely movable objects underwater such as other marine animals. In the following figures where same or similar reference figures are used, these refer to the same or similar features. As outlined above, it is significant that, despite the intense effort over the years, a practical system for estimating biomass of fish remains a challenge. This is thought to be because of the immense data processing required, and because much data is lost because of poor quality and / or occlusion. Thus, even if 200 images are detected, over 80%, or even 90%, or 95% of those images may be lost. Thus, the time taken to provide an estimate of fish weight in a fish pen is extended and the estimate of weight of total biomass can be poor. Indeed, when this time period is extended, additional variables become important, such as varying light conditions, variable seeing conditions, varying opacity I speckle in the water and resultant images etc. All of this remains a challenge. The present inventors have appreciated that even adopting the most recent advances in techniques in image recognition is not enough. An additional approach is required. One approach is to provide a single camera that moves. However, it has been appreciated by the inventor(s) that providing multiple cameras that look out in different directions may be a better approach and is the one adopted here. Referring to Figures 1A and 1B, a four-sided camera system 10 is shown. Camera system 10 comprises a four-sided main body 12, here suspended on a rope or rod (not part of the system) at a central point 22 at an upper surface of camera system 10. Main body 12 forms a housing having four faces 16-1, 16-2, 16-3, 16-4 together forming four faces 16 of camera system 10. Here, the four faces are generally rectangular in shape and at 90° with respect to one another facing outwards about a common centre line, in use typically a vertical axis, passing through a common centre, here central point 20. Positioned along each face is a camera module 20. Thus, face 16-1 has a camera module 20-1, face 16-2 has a camera module 20-2, face 16-3 has a camera module 20-3, and face 16-4 has a camera module 20-4. Each camera module may be an integral unit demountable and re-mountable in its own right from body 12. Alternatively, each camera module forms part of its respective face 16-1 as shown here. Each camera module comprises at least one 3D camera and preferably also at least one 2D camera, preferably a separate 2D camera as shown here, which each face in the same lateral direction extending laterally outwards (typically at 90° from a respective face of the camera module) from a central axis (not labelled) of camera system 10 e.g. extending outwards from a longitudinal axis of main body 12. This longitudinal axis is typically vertical in use e.g. because of the suspension of main body 12 on rope or rod 14. Alternative arrangements of suspension may be envisaged. A first camera module 20-1 is shown here comprising three cameras, here a three-dimensional camera comprising a pair of stereo (2x2D) cameras, C1A and C1B, and a high resolution (e.g. HD) camera, here a HD colour camera RGB1 (or a preferably HD camera which may be monochrome). Similarly, a second camera module 20-2 is provided comprising a pair of 2D cameras C2A, C2B forming a 3D stereo camera and a high resolution, here coloured, e.g. HD camera, referred to here as RGB2. The hidden faces of housing 12, 16-3 and 16-4, preferably, comprise respective camera modules 20-3 and 20-4 respectively (not shown). These can, however, be seen schematically in Figure 1B. Preferably, the cameras C1A, C1B, RGB1 in each respective camera module are provided vertically in line with one another along a vertical axis 18-1, 18-2 so that each camera within a given camera module faces outwardly in the same lateral direction. Thus the two stereo cameras C1A and C1B are vertically in line with one another in use. This enables a view from above and below a horizontal plane extending laterally outwards from the camera module, and so above and below fish when these travel in or through that plane. Typically, each of the cameras within a camera module is chosen so that the width of its field of view is generally or substantially the same as the other cameras within that camera module. At least, the two cameras within a pair of stereo cameras have the same field of view preferably, furthermore these are also preferably identical cameras. Referring now to Figure 1B, it can be seen that camera module 20-1 has a first field of view F1, camera module 20-2 has a second field of view F2, third camera module 20-3 has a third field of view F3 and camera module 20-4 has a fourth field of view F4. The width of these fields of view as shown in Figure 1B overlap so that images from one camera module can be stitched and / or compared to images from another camera module. In this way, camera system 10 provides, here, a 360° view about a vertical axis, typically a longitudinal axis, extending through main body 12 of camera system 10 (e.g. through central point 22). Referring to Figures 2A and 2B, a camera system 10 similar to that seen in Figures 1A and 1B is shown save that, here, camera system 10 is provided with three outwardly facing sides 16-1, 16-2, 16-3 and three associated camera modules 20-1, 20-2, 20-3, Sides 16 (16-1, 16-2, 16-3) are preferably equally spaced about module 12 and are, here, shown at angles of 60° with respect to one another. The housing 12 may have a hexagon shape (as shown by the dotted lines in which the corners of the triangle are removed so that the faces of the triangle are commensurately narrowed to facilitate a broader field of view). Figure 3 shows the positioning of a camera system 10 (here with four camera modules as in Figures 1A and 1B) in a pen 30 suitable for containing fish 24. It can be seen that the fields of view F1, F2, F3, F4 extending laterally outwards from respective faces of camera system 10 from respective camera modules 20-1, 20-2, 20-3 and 20-4 overlap (see hatched regions), and, here, occupy a not insignificant proportion of the pen 30 volume when seen from above. Thus, the hatched regions in which the field of view F1 overlaps with its neighbours F2 and F4, and in which the field of view F2 overlaps with its neighbours F1 and F3, is quite significant. This means that in one or more preferred embodiments upwards of 20%, or 25%, or 30%, or 25-50%, or 50% of the area of the volume occupied by the fish when seen from above is viewed by two or more camera modules. This facilitates tracking of fish from a view in one camera module to a view in another camera module or rather from a frame in one camera module to a frame from another camera module, helping to reduce the discarding of data, assisting with tracking, and assisting with accuracy of data. This an overlap of field of view from one camera module to the next may be provided in any one or more embodiments of the invention. Briefly referring to Figure 4, the overlap of the 2x2D (pair) of stereo cameras, here referred to as CxA and CxB, with each other and with corresponding high-definition camera (HDx if monochrome, or RGBx if coloured) is shown. As these cameras all face in the same lateral direction and are closely spaced one above the other in a line, this means that they view more or less the same vertical height. Referring to Figures 5 to 9, various methods and systems of one or more embodiments of the invention will now be described. Figures 5 shows an overall methodology of, in step 100, object detection and segmentation, followed by, in step 200, tracking of the detected objects in more than one frame within a camera module and / or more than one frame across neighbouring camera modules e.g. from module 20-1 to module 20-2 and even from module 20-2 to module 20-3 and so on. Tracking is followed by dimension estimation and distribution of same within a population (e.g. fish in a pen) in step 300. Turning to Figure 6, a breakdown of the steps of object detection and segmentation step 100 is shown. In more detail, firstly, in a 2D image in step 110, boundary boxes for fish and / or for key points are determined e.g. using machine learning tools, for example neural networks e.g. a region proposal network (RPN), faster R-CNN, mast RCNN etc. In step 120, optionally a segmentation mask of the fish on a 2D image may be determined, again using a suitable machine learning tool such as neural networks etc. In step 130, a depth camera, e.g. a stereo (2x2D), and / or a time-of-flight (ToF) camera, is used to measure a depth map. In step 132, optionally, machine learning tools e.g. neural networks may be used to determine boundary boxes of fish and / or of key points of fish and / or to segment a depth map. Indeed, once boundary boxes of fish and / or of key points and / or segmentation of fish have been carried out on a 2D image, the corresponding 3D image (from the corresponding 3D camera in the same camera module) may be used to map onto the corresponding pixels in a 3D camera, e.g. on a pixel by pixel (pixel wise) basis, to determine the depth of the boundary boxes of the fish and / or the boundary boxes of the key points of the fish and / or of other elements of the fish and / or to determine a segmentation mask in the 3D image e.g. based on boundary boxes of fish and / or boundary boxes of key points of fish and / or more preferably the segmentation mask from the 2D image. In one or more preferred embodiments, in step 134, optionally, and preferably as an alternative approach, clustering tools such as unsupervised clustering tools, for example DBSCAN, may be used to segment the depth map (see Figures 10A and 10B). Where segmentation masks and / or boundary boxes have been determined in a 2D image these may be compared to corresponding segmentation masks and / or boundary boxes in the 3D image to determine if these are the comparable e.g. a probability of quality and / or quality factor can be determined, thus, a quality check on the images can be carried out. This may involve comparison of the shapes and / or sizes of the boundary boxes and / or segmentation masks e.g. using least square fit and / or other regression analysis e.g. between a frame in the 2D image and the corresponding frame in the 3D image and / or across multiple frames to assess probability of the object being a fish and / or of sufficient quality. In Figure 7, objects are tracked across frames, typically within at least one camera module and, optionally, from one camera module to the next. Thus, when looking at Figure 3, it can be seen that fish may be tracked about a significant proportion of its journey through fields of view F1 and F2 if it is tracked across camera modules 20-1, 20-2 and beyond, if it needs also tracked from modules 20-3 to 20-4. This means that images of fish at different locations with respect to the camera under the ambient light can be seen. Global trackers such as the KALMAN tracker machine learning tool may be used to identify the trajectory of an object from one frame to the next and estimate the probability that an object in the next frame is the same as the one seen before. By collecting images in multiple directions with a high confidence that these are the same fish, several advantages are provided. Firstly, more images of one fish are collected enabling a better estimate of a particular dimension such as a length (e.g. longest) and / or a height (e.g. average or highest) in order to give a better estimate of the weight. Further, where these images are collected and used in training modules for enhancing the accuracy of the machine learning algorithms that track and detect fish, the accuracy will improve very rapidly over time. One can imagine a fish seen in bright sunlight where the light is coming from behind one camera, say camera module 20-1, will appear more clearly (and possibly larger) than an image of the same fish seen in camera 20-3 in which the light may be behind the fish, in other words the side of the fish being viewed by camera module 20-3 is in shadow. Where this is known to be the same fish, this difference can be included in training images. Indeed, images collected from the apparatus and methods of the invention may be used to train machine learning algorithms in a number of ways e.g. directly and / or following manipulations (inversion, size changes, brightness changes, aspect ratio changes, tilt etc). The images collected may therefore be referred to as digital twins of real and pseudo real images. Where digital twins are used, the data sent about fish, may also be complemented with other data e.g. water quality data, time of day etc. taken from accessories such as water quality sensors, to provide a full digital twin of the fish farm, to allow actionable insights and predications about how different parameters affect growth trajectories. Having the ability to gather images from multiple sides of a fish pen and with high confidence, knowing that one fish in one camera module is the same as the fish in the next camera module means that the object detection algorithms, whether these rely solely on 2D images or on 3D images or on both, can be more swiftly and accurately trained. It is the provision of closeness of the fields of view, and preferably overlapping of fields of view from one camera module to the next, so of one field of view, say F1, to another field of view, say F2 and beyond, that means that the same fish can be captured in corresponding frames by different camera modules, and we have a high probability it is the same fish and, therefore, more accurate tracking can be carried out, and what is more carried out to provide the same image of the fish in different directions. As the fish circle a pen (whether this is circular when viewed from above or not), the variation in presentation (aspect) to the camera system, especially when this is placed centrally within the pen, is much reduced. This increases the similarity in the view of the same fish from one camera to the next, and is a significant advantage to cameras placed elsewhere about say a periphery of a fish pen, or moving cameras, facilitating tracking without having to necessarily identify each fish e.g. by markings. Nevertheless, in one or more embodiments, markings may be used to identify individual fish. In these or other embodiments, tracks may be used to identify individual fish. In step 210, a machine learning tracker (e.g. KALMAN global tracker) is used to identify the trajectory of the fish from frame to frame e.g. across camera modules. In step 220, a trajectory has been used to identify the object across a number of frames e.g. across ten frames, for example across camera modules. A validation step may be carried out to determine if the track is valid (step 230). In step 240, optionally, one or more frames may be selected from a set of frames associated with a track e.g. because the images are of higher quality, because these are in sunshine, or because the aspect of the fish is better or less curved and so on. It will be understood that, where an image of a fish is used to determine an estimate of weight in one camera module, say 20-1 where the fish is clearly seen, this estimate of weight can be used, along with the corresponding poorer image of the same fish in another camera module, which may be facing a brighter sky, e.g. the sun, and so the image is in shadow, to train a neural network model to develop an algorithm that better estimates the weight of a fish under those poorer conditions. In step 300, a dimension e.g. length and / or height and / or width of an object is estimated. Here the object may be a fish itself and / or a track of a fish. This step is shown in more detail in Figure 8 in which, optionally, a centre line of an object and / or track can be determined from a depth map e.g. from a DBSCAN result. In step 320 an estimate or a determination of a dimension for each object and / or track is made. In step 330, optionally, extra pixels are added to a centre line e.g. at one or both ends of the object or track, for example if the difference in depth values outside an outline e.g. a segmented outline of the fish is less than a predetermined amount such as <5 to <15cm, or <8cm to <12cm or, more preferably, <10cm. In step 350, optionally, the most representative frame with the likely best length or dimension is selected. In step 360, height is similarly determined. Optionally, in step 362 a point cloud data is used to determine the height. Optionally, in step 364 segmentation with tagging e.g. using boundary boxes may be used to provide more reliable depth and / or separation of tagged portions to determine the height. In step 366, optionally objects at poorer angles, e.g. presenting a poorer aspect, to the camera are filtered out. In step 370, the dimension that has been found, e.g. length and / or height and / or area and / or volume is used to calculate an estimate of weight. A distribution of dimensions and / or weights may be established. Figure 9 shows a system overview of the apparatus and method in which first and second camera modules 20-1 and 20-2 are used to provide input to an image processing system comprising a storage media 30 for storing of images as frames, and for storing programmes of instructions for carrying out the methods on the apparatus of the invention. A control unit 40, e.g. one or more microprocessors, is used to gather 2D and 3D images from the storage media and to run the programme for analysing these. For example, where a stereo camera is provided, a control unit carries out stereo matching in step 130-1 and a depth calculation in step 130-2 to produce a depth map. Object detection in the 3D image, e.g. segmentation using depth, may be carried out. This may be carried out by clustering to produce a DBSCAN result (see Figures 10A / 10B). Similarly, turning to the 2D images, these may be from a high-definition camera or from a base image from one of the 2D cameras of the stereo camera. Object detection, e.g. using boundary boxes and / or segmentation using intensity or colours or textures etc., is carried out to provide segmented images of fish. Objects are tracked e.g. images of the fish or the boundary boxes across frames and / or cameras and the most likely frames may be selected. A series of example frames f=1 to 4 at respective times t=1 to 4 are shown, in which images HD1 are viewed in first camera module 20-1 and images HD2 are viewed in second camera module 20-2, thus indicating the fish has been tracked around approximately 180° (or more) of a pen 30 (see Figures 1B and 2B). Using the high-resolution 2D images, seen by the high-definition cameras in each camera module, facilitates the choice of frames which may be taken from the 3D images and / or can be used to check dimensions taken from the 3D images. This flexibility provided by the present invention to select appropriate images from different cameras at the same time but corresponding to different views and / or locations means that objects can be tracked for much longer than previously, adding to accuracy in determined estimates of weight and also adding to accuracy where these images are used in future training models. In step 330, the depth of dimension pixels is checked and adjusted if required, typically adding pixels at the end of a representative line, and / or to an area where the dimension is an area. Either then or earlier, in step 350, 360, optionally, selected frames with representative dimensions may be selected. Finally, in step 370, the weight is estimated using the selected representative dimension. Where the images taken are fed back into the machine learning tools (e.g. neural networks) used within the image processing system, this enables the image processing system to improve itself (e.g. by further training and / or adjustment of the trained algorithms) as it goes along and, further, can also provide training images for training purposes. In one or more embodiments, one prospective solution sees the introduction of a preferably 360-degree (or indeed >180-degree or >270-degree) camera system, providing preferably stitched 2D and / or 3D images from multiple camera modules arranged in an orb in a fish pen (e.g. a fish cage). To our knowledge, no one has applied this concept commercially underwater, and it has not been utilised in fish farming. The potential benefits to fish monitoring are significant, because a stitched >180-degree or >270-degree or, more preferably, 360° view inside a farm pen means that every fish swimming past the camera will at some point be tracked and captured in its entirety by one of the multiple cameras. Machine learning algorithms typically require at least 200 images, and often many thousands of images to identify or improve features of interest. Historically to track a feature of interest, such as a wound, thousands of images would need to be collected over many years, to make up for the fact that only one or two examples may be photographed by a single camera. However, with 360-degree technology every angle and fish image may provide a valid identification of that fish with far higher probability of capturing the feature in question. In one or more preferred embodiments in a further aspect, such as a 360° camera may be further adapted as follows: 1. It may be deployed in a dome housing suitable for long term deployment at sea, e.g. with anti-fowling and magnification issues to overcome. 2. It may employ stereo vision e.g. not just 360° vision, but stereo vision and preferably 360° stereo vision to facilitate pixel location using x, y, z co-ordinates. 3. It may embed one or more additional cameras with higher zoom capabilities to provide a zoom function on key parts of any objects identified. In one or more embodiments, trained machine learning based classifier algorithms such as Haar classified cascade can be used to identify fish in one of the left-hand side and right-hand side images in stereo image processing. Optionally, images that do not have at least a predetermined number of features (e.g. fins and / or eyes and / or tail) in the lefthand side image and / or in the right-hand side image may be discarded. In one or more preferred embodiments the present invention may help unlock data streams to provide more rapid training of features which will allow fish farmers to better understand the health and welfare of their fish. More data, means improved accuracy and faster learning. Current biomass and fish health systems on the market utilise stereo cameras with a processor to match two offset images of a fish, allowing fish weight to be calculated. Accuracy, however, is severely impacted across the weight distribution classes due to inexperience of the algorithm with a range of different fish sizes (due to limited data). Similarly, training lice, wound, maturation and other areas of interest can take many years, simply because the system is already trained to reject incomplete representations of fish. This leads to minimal samples of valid fish identifications, and even fewer examples of unusual traits. In one or more preferred embodiments, an improved machine learning approach employs segmentation, preferably alongside boundary box recognition, rather than only simple box recognition (which may rely on operator approved drawing around similar objects to train the computer algorithm). Such segmentation may be based on image features such as intensity, colour, texture, brightness etc., but may be at least in part, on depth. Thus, segmentation in general takes a pixel-by-pixel approach and, where depth is involved, this enables full 3D rotation of the image surveyed, accurate object identification, and providing a clearer path to rapid training from the increased amounts of usable images. One or more embodiments may be configured as follows: - A high resolution 2D camera may be provided and optimally used to run A.I. detection algorithms, (otherwise the algorithms can be run with a sole stereo camera). The high resolution 2D camera may be used to detect objects trained in the software which may be one or more of different species of fish, lice, indicators of maturation, disease (e.g. fin rot), health, swimming behaviours, pellet detection etc. Two stereo cameras (or optionally a ToF camera, or optionally stereo cameras and a ToF camera) may be provided. Preferably, these are aligned to provide the same focal view as the high resolution RGB camera. - A 3-stage pipeline of fish-detection (DBSCAN Ester et al 1996), tracking and length estimation may be used. - The depth map may be used to create a centre line and centre line for each frame in a track. The stereo camera may be capable of 40 frames per second and therefore can generate 3D frames at 4 Hz. This can depend on the disparity range e.g. for a range of 64 pixels, some cameras can provide 40fps, but for higher disparity ranges it may have 30 or 20 fps. The cameras are capable of detecting objects underwater at up to 4m. The signal to noise ratio (SNR) may be improved by binning (e.g. clustering) pixels. Camera modules’ calibration parameters may be established using a checkerboard method, or using Arllco markers and / or ChArllco markers and methods, available from https: / / www.deepen.ai / blog / what-is-a-charuco-board-and-why-you-should-use-it. In one or more embodiments, the method may comprise one or more of the following: Step 1: Frame-based Processing (Step 100) • Collecting depth frames • Detection and segmentation e.g. detection of objects (e.g. fish) e.g. using boundary boxes and / or segmentation masks • Statistics • Tracker (e.g. tracking objects across frames, and preferably across fields of view so from one camera module to the next) Step 2: Track Based Processing (Step 200) • Valid tracks (e.g. determining if a track is valid) • Length Estimation • Estimating length / height per track and / or per fish Step 3 Statistical collection (Step 300) • Individual lengths / heights leading to weight (e.g. using proprietorial and / or known techniques such as those of BEDDOW et al 1996) • Determining a cage level distribution of fish weights Detection / segmentation: In the detection and / or segmentation steps, segmentation applied to 2D images confuses the outline of one fish with another. 3D detection using point cloud avoids problems with segmentation of fish, where fish overlap. This approach enables a fish outline on a z plane to be captured, as the fish are swimming at different distances to the lens. Low confidence images / signals may be filtered out. Unsupervised clustering techniques may be applied, such as DBSCAN (density based spatial clustering of applications with noise see Ester et al. 1996) to separate the fish based upon their depth map. The depth map is converted into a point cloud (based upon focal length, lens, distortion parameters etc.). An example output from the DBSCAN is shown in Figures 10A and 10B. Tracking fish over frames: Tracking offish across multiple frames may avoid double counting the same fish - A global tracker such as KALMAN may be used to identify the trajectory of the object / fish. - A minimum cost circulation (CINDA) framework https: / / github.com / yu-lab-vt / CINDA# with a frame horizon of 5 to 20, preferably 10, frames may be used. Fish length: To determine fish length, the centre line in the DBSCAN from head to tail may be extracted and an estimate made of length for each track / fish. In one or more preferred embodiments, extra pixels may be added to the centre line in a search for extra pixels at either end of the fish. Extra pixels are added to the centreline if the difference in depth values outside the segmentation are within a predetermined amount e.g. 5 to 20cm, 5 to 15cm, 8 to 12cm, or within up to 10cm. The centre line may be converted into Euclidean co-ordinates (Euclidean space has three mutually perpendicular co-ordinate axes (x, y and z), and three mutually perpendicular co-ordinate planes: the xy-plane, yz-plane and xz-plane). - As fish may be turning or moving in different directions, a fish may be tracked over several frames in one camera module and / or across camera modules to choose the most representative value for the length estimate. Filters may be applied to choose the most reliable image (e.g. the curvature of the line is preferably no more than 0.1 see TILLETT et al, Estimating Dimensions of Free-Swimming Fish Using 3D Point Distribution Models, Computer Vision and Image Understanding 79, 123-141 (2000)). Fish height and depth: With point cloud data, it is also possible to determine the height of the fish, taking a similar approach on the vertical plane. Length and height may then be used to calculate weight. - Alternatively, standard algorithms based upon area of the fish determined from point cloud data can be used to reach a better estimate of weight. - Alternatively, segmentation can be used in combination with tagging, to provide more reliable distances of tagged portions of a fish (e.g. a segmented fin or head) to reach a better estimate of weight. The proposed approach avoids the inaccuracies of simply using only 2D stereo imaging of fish underwater, whereby fins may be mistakenly measured, by utilising point cloud maps of synced stereo cameras with sophisticated image processing, alongside a high resolution RGB camera. Point cloud maps can be used to track the fish cross multiple frames, with filters removing fish whose angles that are suboptimal. The present invention proposes the first stitched 3D (e.g. stereo) cameras for use underwater, allowing up to a full 360° view of the underwater environment with access to the x, y, z, coordinates across all images. Global tracker software developed for the tracking of fish across a stereo camera’s multiple frames, for the first time, has been applied to footage from multiple cameras, allowing the fish to be tracked across multiple stereo systems. - Tracking, preferably, occurs through the 2D cameras - with tracking software trained to identify fish trajectory, but across multiple stitched images. In one or more embodiments, whenever all fins of the fish species of interest are present in the frame, the camera seeks full x, y, z coordinates from the point cloud map as described above in more detail. The Al segmentation etc. can also be done on the stereo pair images of cameras’ alone, but, in one or more embodiments, preferably a separate 2D camera is used because this may be colour or monochrome and / or HD. The stereo pair cameras may also be colour, or the segmentation could also or alternatively be carried out using one camera of the stereo pair in monochrome. Preferably, a stereo pair in monochrome is provided (to get more penetration in dark conditions) and a high-definition 2D camera in colour, to get more features detected (e.g. better for health indicator detection, maturation, spot pattern detection, lice detection, disease detection etc). A KALMAN filter can be used to detect the fish swimming speed and, furthermore, this may be used to determine when to turn on / off the feeding systems, because swim speed is linked to appetite. Thus, preferably, in one or more embodiments, tracking of fish takes place over multiple cameras so there is a better chance of capturing the longest length of that same fish over multiple frames. Spot pattern detection may be provided (e.g. by ML image recognition techniques) and may feed into this, because with the individual fish identified (for example by a separate HD RGB 2D camera) there is a better chance, and more frames, to be more sure that this is a particular individual. The system and methods of the invention are then less likely to double count fish and skew the average weights recorded, improving overall accuracy of estimated biomass in a fish pen. In one or more embodiments, the model extracted from the point cloud may be taken and placed into synthetic (virtual) fish farms to train the ML model under new conditions. It can test different virtual farming parameters. In one or more embodiments, the invention addresses one or more problems of the art referred to above. 10 12 14 16, camera system main body suspension mechanism e.g. rope or rod 16-1, 16-2, 16-3, 16-4 18, 18-1, 18-2, 18-3, 18-4 20, 20-1, 20-2, 20-3, 20-4 sides or faces on main body axes (usually vertical) of each camera module camera module 22 24 30 40 centre of camera module fish storage media control unit C1 A, C1B ((C2A, C2B), (C3A, C3B), (C4A, C4B)) 2D cameras of camera module 1 (2, 3, 4) forming a stereo camera RGB1 or HD1 ((RGB2, HD2), (RGB3, HD3), (RGB4, HD4)) high resolution 2D camera of F1, F2, F3, F4 F(CxA) F(RGBx) camera module 1 (2, 3, 4) field of view e.g. horizontal field of view, from camera module 1, 2, 3, 4 respectively (usually extending about vertical axes 18-1, 18-2, 18-3, 18-4) field of view e.g. vertical field of view of camera CxA (usually extending about a horizontal axis) field of view (e.g. vertical field of view of camera RGBx) (usually extending about a horizontal axis)
Claims
1. A camera system for estimating biomass of freely swimming fish in a pen comprising:at least two camera modules, a first camera module for immersion underwater in a pen having at least one 3D camera, and, a second camera module for immersion underwater in a pen having at least one 3D camera;the first camera module facing outwards in a first lateral direction; the second camera module facing outwards in a second lateral direction whereby at least the first and second camera modules capture images in different lateral directions.
2. A camera system according to claim 1 comprising:in the first camera module at least one 2D camera;and, in the second camera module, at least one 2D camera;at least the first and second camera modules being configured so that the 2D and 3D cameras of that camera module have overlapping fields of view from that camera module.
3. A camera system according to claim 2 in which the 2D camera in at least one camera module is separate from the 3D camera in the at least one camera module.
4. A camera system according to any preceding claim comprising:two, three, or four camera modules, each camera module for immersion underwater in a pen and having at least one 2D camera and at least one 3D camera;each camera module being configured so that the 2D and 3D cameras of that camera module have overlapping fields of view;each camera module facing outwards in a respective lateral direction whereby each of the two, three, or four camera modules capture images in different lateral directions.
5. A system according to any preceding claim in which each camera module is configured such that its respective lateral direction is at an angle of 45°, or 60°, or90°, or 120°, or 180°, or at least 60°, or at least 90°, or at least 120° to the lateral direction of at least one neighbouring camera module.
6. A system according to any of claims 2 to 5 in which, in at least one camera module, the 3D camera is separate from the 2D camera and lies above or below in line with the 2D camera.
7. A system according to any of claims 2 to 6 in which, within at least one camera module, the field of view of the 2D and 3D cameras in the camera modules generally, or substantially, overlaps;and / or, the lateral extent of the field of view of the 2D and 3D cameras are generally, or substantially, the same.
8. A system according to any of claims 2 to 7 in which at least one 2D camera is a high-definition camera.
9. A system according to any of claims 2 to 8 in which at least one 2D camera is a colour (e.g. RGB) camera.
10. A system according to any preceding claim comprising three camera modules arranged in a triangular manner.
11. A system according to any of claims 1 to 7 comprising four camera modules arranged in a quadrilateral manner.
12. A system according to any preceding claim in which the lateral field of view of each camera module around the pen overlaps with the field of view of one or more neighbouring camera modules.
13. A system according to any preceding claim in which the 3D camera is a stereo camera.
14. A system according to any preceding claim in which the 3D camera is a time-of-flight camera.
15. A system according to any preceding claim further comprising an image processing system of, or operatively coupled to, at least the first and / or second camera modules and / or any further camera modules, the image processing system comprising:- one or more microprocessors; and,- a storage media comprising one or more programs configured for execution on the one or more microprocessors, the one or more programs comprising instructions configured for:- in a first camera module, capturing at least one 3D image of the first field of view from a 3D camera;- in a second camera module, capturing at least one 3D image of the second field of view from a 3D camera;- detecting objects in 3D images in the first and second field of view;- determining if an object is a fish, and if it is a fish, tracking the object in images across a plurality of frames in one camera module;- determining a dimension of a tracked object in a plurality of frames in the images;- estimating the mass of the tracked object from the determined dimension.
16. A system according to claim 15 comprising:- in the first camera module, capturing at least one 2D image of a first field of view from a 2D camera;- in the second camera module, capturing at least one 2D image of a second field of view from a 2D camera;- detecting objects in the 2D images in the first and second field of view;- determining if an object is a fish, and if it is a fish, tracking the object in 2D and / or 3D images across a plurality of frames in one camera module;- determining a dimension of a tracked object in a plurality of frames in the 2D and / or 3D images;- estimating the mass of the tracked object from the determined dimension.17.A method of estimating the biomass of freely movable objects using the camera system of any of claims 1 to 16 comprising, in an image processing system comprising one or more microprocessors and a storage media, the storage media comprising one or more programs configured for execution on the one or more microprocessors, the one or more programs comprising instructions to perform the method of:- in a first camera module, capturing at least one 3D image of the first field of view from a 3D camera;- in a second camera module, capturing at least one 3D image of the second field of view from a 3D camera;- detecting objects in 3D images in the first and second field of view;- determining if an object is a fish, and if it is a fish, tracking the object in images across a plurality of frames in one camera module, or across two or more camera modules;- determining a dimension of a tracked object in a plurality of frames in the images;- estimating the mass of the tracked object from the determined dimension.
18. A method according to claim 17 comprising:- in the first camera module, capturing at least one 2D image of a first field of view from a 2D camera;- in the second camera module, capturing at least one 2D image of a second field of view from a 2D camera;- detecting objects in the 2D images in the first and second field of view;- determining if an object is a fish, and if it is a fish, tracking the object in 2D and / or 3D images across a plurality of frames in one camera module;- determining a dimension of a tracked object in a plurality of frames in the 2D and / or 3D images;- estimating the mass of the tracked object from the determined dimension.19.A method according to claim 17 or 18 in which the step of tracking is carried out across image frames from the first and from the second camera module.
20. A method according to claim 17, 18 or 19 comprising:where the dimension is a length of a line, determining the depth of one or more pixels at the end of the line, and determining the depth of at least one neighbouring pixels, and comparing these, and if the result of the comparison is less than a predetermined amount, adding a pixel to the line.
21. A method according to claim 20 comprising:repeating the step of claim 20.
22. A method according to any of claim 17 to 21 comprising:using a segmentation mask in a 2D image to identify corresponding pixels in a 3D image and determining the dimension from the segmentation mask in the 3D image and from the depth map.
23. A method according to any of claim 17 to 22 comprising:- selecting one or more of the determined dimensions of a tracked object in multiple frames in 2D and / or 3D images to determine biomass by determining the quality of the one or more determined dimensions, by one or more of:a) comparing the determined dimension across multiple frames and selecting most likely;b) comparing the dimension determined from a 2D image with the corresponding dimension determined in a corresponding frame in a corresponding 3D image taking into account depth and selecting the determined dimension in the 3D image if the corresponding determined dimension in the 2D image is shorter;if the quality of the determined dimension is sufficient, estimating the mass of the object, and if the quality of the determined dimension is insufficient, discarding the data.
24. A method according to any of claims 17 to 23 comprising:- identifying a plurality of landmark points and / or one or more body surface lines within the image of the fish on the depth map;- determining one or more body dimensions of the fish using the plurality of landmark points and / or one or more surface lines, and, based on the one or more body dimensions, estimating a mass of the fish.
25. A method according to any of claims 17 to 24 in which- the step of detecting objects in 2D comprises tagging and / or segmenting objects in 2D images from a 2D camera, optionally from a 2D camera separate from the 3D camera.
26. A method according to any of claims 17 to 25 in which- the step of detecting objects in 3D comprises tagging and / or segmenting objects in 3D images.
27. A method according to any of claims 17 to 26 in which a stereo camera is provided and the method further comprises:i) obtaining and storing a pair of digital images captured by, or derived from digital images captured by, the stereo camera;ii) matching pixels between pairs of digital images;iii) producing a disparity map;5 iv) using the disparity map to determine a depth map;v) using a trained machine learning tool to classify a region of the depth map, as containing an image of a fish; optionally, cropping the digital image to the image region to generate a cropped image.10 28. A method according to any of claims 17 to 27 comprising:using machine learning to identify relevant pixel groupings representing the depth image in an identified track and / or object from a 2D and / or 3D image.34