A system and method for photogrammetry of animals
The system addresses the challenge of capturing 3D models of moving animals by employing a synchronized multi-camera setup with ambient lighting adjustment, achieving precise 3D model generation and measurement.
Patent Information
- Application Number
- PCT/IB2024/057304
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-29
- Publication Date
- 2026-02-05
AI Technical Summary
Existing photogrammetry systems struggle to capture accurate 3D models of moving animals without sedation, particularly large mammals, due to challenges in obtaining reliable photographs from multiple perspectives.
A system comprising a frame with orthogonal axes and multiple camera assemblies, each with a local controller, synchronized by a master controller to capture photographs from diverse angles, and a control assembly to adjust settings based on ambient lighting, enabling synchronized and coordinated image capture.
Enables the generation of precise 3D models of moving animals by ensuring consistent lighting and synchronized image capture, facilitating accurate measurement of physical characteristics.
Smart Images

Figure IB2024057304_05022026_PF_FP_ABST
Abstract
Description
[0001] A System and Method for Photogrammetry of Animals
[0002] FIELD OF INVENTION
[0003] This invention relates to photogrammetry of animals and more particularly to a system and method for photogrammetry of animals, particularly large mammals.
[0004] BACKGROUND OF INVENTION
[0005] Most of the Inventors have worked in the field of photogrammetry of animals, that is, determining physical characteristics (like mass) of the animals from photographs or photographic models (see Terrestrial mammal three-dimensional photogrammetry: multispecies mass estimation; M. Postma et al. (2015). Ecosphere Vol. 6(12): Article 293, doi: 10.1890 / ES15-00368.1 and How to weigh an elephant seal with one finger: a simple three-dimensional photogrammetric application; P. J. Nico de Bruyn et al. (2009). Aquatic Biology Vol. 5(1 ): 31-39, doi: 10.3354 / ab00135). The Applicant has experienced challenges in obtaining accurate photographic models (3D models are usually most useful) of animals, particularly living, moving animals.
[0006] Accordingly, the Applicant desires a system for photogrammetry of animals to enable capturing of photographs and generation of 3D models of animals, e.g., large mammals, even when the animals are moving and not sedated (in other words, non- invasive imaging from multiple perspectives / angles). SUMMARY OF INVENTION
[0007] Accordingly, the invention provides a system for photogrammetry of animals, the system including: a frame or support structure defining a target area configured to accommodate an animal to be photographed, the frame further defining orthogonal axes, namely a longitudinal (front-to-back) axis, a lateral (side-to-side) axis, and a vertical (top- to-bottom) axis; at least 20 camera assemblies, each camera assembly including: a camera mounted to the frame and directed towards the target area configured to take a photograph of at least a portion of the animal; and a local controller coupled to the camera, the local controller configured to relay photograph settings to the camera and to trigger the camera to take the photograph, wherein the cameras in the plurality of camera assemblies are configured to take the photographs from different perspectives relative to one another; a control assembly comprising: a sensor configured to sense at least ambient lighting conditions and generate a sensor signal comprising the sensed ambient lighting conditions; and a master controller coupled to the sensor and configured to: receive the sensor signal and determine common photograph settings based on the sensed ambient lighting conditions; communicate the common photograph settings to each local controller; communicate a trigger signal to each local controller, to cause each local controller to trigger its coupled camera synchronously to take a photograph of a part of the animal; and wherein: the frame is divided into four similar quadrants or quarters, in plan view; and each quadrant is configured into a plurality of zones having different camera mounting orientations, the zones including: an upper side zone comprising at least two cameras which are downwardly directed towards the target area; a lower side zone comprising at least two cameras directed transversely or upwardly towards the target area; an oblique zone comprising at least two cameras directed longitudinally, or transversely towards the target area; and an archway zone at an end of the target area, the archway zone comprising at least four cameras directed longitudinally towards the target area.
[0008] The master controller may be configured to receive from each camera assembly the photograph it took.
[0009] The frame may define a longitudinal axis extending through the target area. A height of the axis selected to approximate a midline of the animal’s torso. The longitudinal axis may be 0.8-1.5 m high. The longitudinal axis may be 1.0-1.3 m high. The longitudinal axis may be 1 .16 m high. The longitudinal axis may vary based on animal length, and may be 1 .0-2.5 m, e.g., 1 .8 m, long.
[0010] The quadrants may be entirely, or mostly, symmetrical. The quadrants may be rectangularly arranged, e.g., including a front left, a front right, a rear left, and a rear right quadrant. Front and rear quadrants may be symmetrical about a vertical widthwise plane. Left and right quadrants may be symmetrical about a vertical lengthwise plane.
[0011] The Applicant envisages that at least 20 cameras would be needed to provide reliable coverage of the animal. There may be 30-70 cameras, more specifically 40-55 cameras. In one embodiment, there are 46 cameras. The least some of the cameras in some of the zones may be common or shared between quadrants. For example, cameras on a boundary or interface between the front and rear quadrants may be shared. All cameras in some of the zones may be shared. All cameras in the upper side and lower side zones (collectively, the side zones) may be shared between the front and rear quadrants.
[0012] There may be one or more blank zones containing no cameras.
[0013] Cameras directed towards the target area may be directed towards the longitudinal axis.
[0014] As a point of reference (and referring to FIG. 12), upward or downward camera orientation may be relative to the vertical axis. A 90° incline may be vertically upward (parallel with the vertical axis), a 90° decline may be vertically downward (also parallel with the vertical axis), while a 0° incline / decline may be horizontal (perpendicular to the vertical axis). Horizontal rotation about the vertical axis may be referred as longitudinally or 0° rotation (parallel with the longitudinal axis), oblique or 1 -89° rotation, and transverse, laterally, or 90° rotation (that is, perpendicular to the longitudinal axis). Vertical rotation about the horizontal axes may be referred as declined 0°-90° (downwards), or inclined 0°-90° (upwards).
[0015] The system may include cameras not present or not identical in all quadrants. The system may include a camera zone present in 1-3 of the quadrants only. The system may include isolated cameras present in only two quadrants, e.g., diametrically opposed quadrants, but not in remaining quadrants.
[0016] An example of a zone present in some, but not all, quadrants is a top zone. The top zone may comprise only two cameras. The cameras (referred to as top cameras) in the top zone may be orientated downwardly an angle of 150°-180° relative to a vertical axis. The top cameras may be 2.8-3.5 m high, more specifically, 3.0-3.3 m high, e.g., 3.13 and 3.16 m high respectively. (“High” may mean vertical distance from a ground surface or intended support surface.)
[0017] The top cameras may be orientated differently. For example, one of the top cameras straight down (declined 90°) while the other top camera may be declined by 89-60°, e.g., declined by 80°. One or more of the top cameras may be laterally offset from the longitudinal (or from a vertical plane containing the longitudinal axis). Each top camera may be longitudinally offset by 0.1-1.5 m, e.g., 0.3 m and 0.9 m respectively.
[0018] The upper side zone may comprise only two cameras. These cameras (referred to as upper side cameras) in the upper side zone may be orientated downwardly, declined at an angle of 10°-50°, e.g., 40° and 20° respectively. The upper side cameras may be 1.5-2.8 m high, e.g., 1.84 and 2.45 m high respectively. The upper side cameras may have no longitudinal offset. The upper side cameras may be common to, or shared between, longitudinally aligned quadrants (e.g., left front and left rear quadrants).
[0019] The lower side zone may comprise only two cameras. The cameras (referred to as lower side cameras) in the lower side zone may be orientated upwardly, inclined at an angle of 0°-45°, e.g., inclined 0° and 30° respectively. The lower side cameras may be 0-1.5 m high, e.g., 0.16 m and 1.16 m high respectively. The lower side cameras may have no longitudinal offset.
[0020] The oblique zone may comprise at least three cameras. The cameras (referred to oblique cameras) in the oblique zone may be horizontally orientated obliquely to transversely at an angle of 60°-90°, e.g., 70°, 70°, and 90° respectively. These cameras may also be downwardly or upwardly pointed, declined, or inclined by 0°-20°, e.g., declined 10°, inclined 10° and 10° respectively. The oblique cameras may be 0.5- 2.0 m high, e.g., 0.81 m, 0.81 m, and 1.51 m respectively, respectively. The oblique cameras may be similarly longitudinally offset by 0.5-1 .2 m, e.g., 0.9 m for all three cameras. To define the point of reference, the “longitudinal offset” refers not to the camera’s own position, but rather to a point the camera is pointed towards. For instance, a camera with a longitudinal offset of 0.9 m, but a side-on rotation around the z axis, is 0.9 m away from a midline separating front and back sections. However, given that every camera, or most cameras, may be 2 m away from the longitudinal axis, a camera with the same 0.9 m offset and a 45° rotation around the z axis towards the front or back, is itself further than 0.9 m away from the same midline separating front and back.
[0021] Some, or all, cameras may be a common distance from the longitudinal axis. The common distance may be 1.5-2.5 m and may be 2 m.
[0022] The archway zone may comprise at least six cameras. The cameras (referred to archway cameras) in the archway zone may be orientated obliquely to longitudinally. The frame may define two archways, namely at an entrance and at an exit thereof, respectively. The entrance and exit may be reversible, that is, the animals may travel in either direction. However, for a particular implementation, there may be only one intended direction of travel. A rear archway may be considered the entrance while a front archway may be considered the exit. The rear two quadrants may together define the rear archway (with each defining half) while the front two quadrants may define the front archway (again, with each quadrant defining half).
[0023] The archway cameras may range from 0.2-3.5 m high, e.g., being 0.48 m, 1.84 m, 2.45 m, 2.69 m, 2.69 m, and 2.16 m respectively. The archway cameras may be orientated downwardly or upwardly at a declined angle of 0°-60° or inclined at an angle of 0°-20°, e.g., inclined 20°, and declined 20°, 40°, 50°, 50°, and 30°, respectively. The archway cameras may be longitudinally offset by 0.5-1 .2 m, e.g., 0.9 m for all six cameras.
[0024] The archway cameras may be rotated about the vertical axis by 0°-50°, e.g., being rotated by 0°, 30°, 50°, 10°, 40°, and 40° respectively. The quadrant may include blank zones which lack cameras.
[0025] The frame may have an oval appearance (at least, when viewed from the top). Diametrically opposed quadrants of the frame may be identical. Adjacent quadrants may be mirror images of each other. More specifically, the frame may have an elliptical shape, while the camera positions may have a stadium shape.
[0026] The provision of quadrants may be advantageous in that the mechanical construction of the frame is simplified. It may also be advantageous in that positioning of the cameras is simplified. It may also be advantageous in that processing of images from the cameras may be simplified.
[0027] The system may include a communication interface (like a network device). The master controller may be configured to upload a photographic set including the photographs. The photographic set may be uploaded to cloud-based storage. Instead, the local controllers may be configured to upload their respective photos.
[0028] The communication interface may be configured to receive a remote instruction input. Accordingly, the instruction input may be provided by a remote user using, for example, a computer terminal or a front-end application to terminal-based instructions.
[0029] The system may include a web-based application to terminal-based instructions to the master-controller to: troubleshoot issues at the station remotely; power sections (6) of the station on / off; manually trigger all local cameras to take photographs simultaneously; monitor the status of local controllers between: awake (on); asleep; off; and / or down; manually select individual or multiple local controllers to remotely: take photographs, independent of a motion detection event; power off / reboot local controllers; customise local controllers; refresh and report statuses from local controllers; ping local controllers; put local controllers to sleep; download photographs from local controllers; update local controllers; clear local controllers of photographs; and / or stream from local controllers to monitor the site.
[0030] The master controller may be configured to broadcast a package, e.g., a single broadcast package, that contains common photograph settings. The package may contain the ambient lighting settings, image resolution and photo numbering. The ambient lighting settings may be adjusted between -25 and + 25 exposure.
[0031] The master controller may be configured to generate a sensor configured to sense at least ambient lighting conditions and to receive a signal from the master controller and generate a sensor signal comprising the sensed ambient lighting conditions.
[0032] The system may include a web-based application configured to: provide access to users to a photographic set for review, e.g., in terms of obstruction, clarity, etc.; permit users to assign a photographic set I project for automated 3D modelling and track its status; add projects to a cloud-based queue for automated processing by the 3D modelling engine; receive projects at stages requiring manual intervention / supervision; permit download of final 3D models by users from the cloud-based storage; and / or record measurements in a cloud-based SQL database to continuously refine predictive-model building.
[0033] The system may further include a 3D (Three-Dimensional) modelling engine configured to: continuously monitor for changes in a cloud-based queue; download a photograph from each of the plurality of cameras for the first project in the queue; generate a 3D model of the animal based on the received photographs; measure dimensions on the 3D model; upload a 3D model of the animal to the cloud-based storage; and / or upload a set of measurements of the animal to the cloud-based database.
[0034] The control assembly may itself be a camera assembly designated as a master camera assembly. In such case, the camera in the master camera assembly may be the sensor configured to sense the presence of an animal (movement) and the sensed ambient lighting conditions; instead, a different one or more cameras of the plurality of cameras assemblies may serve as the sensor. The local controller of the master camera assembly may be the master controller. In other words, in the plurality of camera assemblies, one of the camera assemblies may be designated as the master camera assembly while the remaining camera assemblies may be designated as slave camera assemblies being controllable by the master camera assembly. The camera in the camera assembly may include a sensor device, like a CCD (Charge Coupled Device) or CMOS (Complementary Metal-Oxide Semiconductor) sensor, configured to take a digital photograph. A quality of the photograph may depend on intended application, but each photograph may be greyscale or colour and may have a resolution in the range of 1 MP-100 MP.
[0035] The camera assembly may comprise a Raspberry Pi™ or similar device as the local controller and a Raspberry Pi camera attachment as the camera. Other microcontrollers or microprocessors (like Arduino™ or a custom-developed board) may provide suitable controllers.
[0036] The frame may fully enclose or only partially enclose the target area. The frame may include concave or arcuate members to define or border at least part of the target area.
[0037] The cameras may be directed radially inwardly towards the target area. The cameras may be directed (1 ) towards a single point or (2) more spaced apart and directed towards different parts of the target area. The 3D area may match the shape and / or size of the animal intended to be photographed.
[0038] The frame may include one or more channels, e.g., a tunnel, an entrance, or an exit, to direct animals to or from the target area.
[0039] The common photograph settings may include one or more of aperture setting, resolution, under-or-over exposure, image labelling, shutter speed, image size, ISO setting, and the like.
[0040] The system may be configured to receive an input to cause the triggering of the cameras. The input may be an instruction input. The system may include a user interface configured to receive the instruction input. The instruction input may direct the master controller to initiate the photograph taking process, including determining the common photograph settings and communicating the trigger signal to the local controllers.
[0041] The user interface may be physical or web-based and include a button, like a push button or a digital button on a web-based application. Accordingly, the instruction input may be provided by a local user.
[0042] The system, and particularly the sensor of the control assembly, may be, or may include an RFID reader. It is conventional practice for animals to be identified with RFID tags. Detection and reading of the RFID tag may be used to (1 ) identify the tagged animal and / or (2) trigger the taking of the photographs. The master controller may also be configured to operate gates or barriers that control the flow of animals, based on reading RFID tags.
[0043] Instead, or in addition, the instruction input may be derived from a sensor (e.g., a camera used as a sensor, proximity sensor, RFID tag or movement sensor) in response to sensing the presence of the animal in the target area.
[0044] The system may include an automated gate operation procedure controlled by the master controller that opens and closes gates to let animals pass through the setup. The instruction input may be derived from a sensor (e.g., a camera used as a sensor, proximity sensor, RFID tag or movement sensor) in response to sensing the presence of the animal in the target area.
[0045] The system may connect via telecommunications network, or a communications I unshielded twisted pair (UTP) cable and router, and / or Wi-Fi to the internet. This connection to the internet may allow photographs to be uploaded to cloud-based storage. The cloud-based storage may be used to store sets of photographs that are yet to be processed. The cloud-based storage may be accessible by a web application. An example of a cloud-based storage may be Google Cloud Storage.
[0046] The web application may be used to connect the master controller, cloud-based storage, 3D modelling engine, cloud-based queue, and cloud-based SQL database. Collectively, they make up the network interface. The web application may provide a user-friendly interface to engage with the 3D stored sets of photographs in the cloudbased storage, trigger 3D model generation in the 3D modelling engine and access recorded measurements in the cloud-based SQL database. An example of a framework used for creating such a web application is Django.
[0047] The cloud-based SQL database may be accessible by the web-application to record measurements. This relational database may need to reliably store numerous datapoints for individual animals over time necessary for training predictive models (see later). An example of a cloud-based SQL database is MySQL.
[0048] The cloud-based queue may be accessible by the web application and the 3D modelling engine. The cloud-based queue may be a NoSQL document database for reduced size and high performance.
[0049] The 3D modelling engine may be based on a local computer or on a virtual machine. A virtual machine may be securely accessible anywhere with internet connection.
[0050] The 3D modelling engine may be configured to estimate or derive one or more physical characteristics of the animal from the 3D model. The physical characteristics may include one or more of volume, shoulder, height, girth, width, and standard length of the animal. The physical characteristics may be tailored to a particular animal, e.g., including horn length if the animal has horns. An example of the 3D modelling engine may be PhotoModeler™. The 3D modelling engine may be configured to assign 3D positions to fiducial-marked control points. These points are automatically identifiable in photographs and calculated by the 3D modelling engine. These 3D control points may be used to define / calculate a best-fit ground plane. These control points may also be used to define left to right I the x-axis, front to back I the y-axis and an orthogonal z-axis.
[0051] The 3D modelling engine may be configured to receive input feature positions associated with each photograph. These features may include shoulder mid-point I withers, base of tail I dock, poll, rostrum / muzzle tip, left, right, front and / or back hock, fetlock, elbow, knee, heel, hoof tip, throat latch, point of hip, widest point of horn and / or horn tip if present on the animal. These feature positions may be manually assigned or automatically predicted using machine learning I computer vision models. The 3D modelling engine will calculate the 3D positions of these features based on 2D positions on photographs.
[0052] The 3D modelling engine may be configured to calculate distance between two 3D positions of features to measure physical characteristics of the animal from the 3D model. These physical characteristics include lengths, spans, widths, and / or girths.
[0053] The 3D modelling engine may be configured to calculate the shortest distance between a 3D position of a feature and a defined ground plane to measure physical characteristics of the animal from the 3D model. These physical characteristics include heights.
[0054] The 3D modelling engine may be configured to calculate volume and / or surface area above a ground plane, excluding environmental surfaces to measure the volume and / or surface area of the animal from the 3D model. Environmental surfaces may be distinguished / separated / segmented from animal surfaces manually or by machine learning models. This segmentation may also be informed by 3D surfaces encompassing the environment without the animal. An alternative 3D modelling engine may be used to measure more complex dimensions of the animal manually or automatically from the 3D model. Such dimensions include chest circumference.
[0055] The 3D modelling engine may be configured to generate the 3D model with supervision (or input) from a user or without supervision (or input) from a user. The Applicant is working towards an automatic and / or unsupervised 3D modelling engine, but while the 3D modelling engine is being trained initially and / or to increase accuracy of the 3D model, supervision may be provided.
[0056] The 3D modelling engine and the cameras may be remote from each other, e.g., being networked together. The camera assemblies and web application’s web interface may be provided in a frontend part of the system with the 3D modelling engine and SQL database may be provided in a backend part of the system.
[0057] Additional user input may be provided to supplement the 3D model, like age of the animal, location photographed, etc.
[0058] The system may include a prediction engine configured to predict future characteristics of the animal based on the 3D model. The prediction engine may be configured to predict the future characteristics based on the physical characteristics estimated from the 3D model.
[0059] The system may include prediction engines configured to predict a future characteristic of the animal based on the 3D model or set of physical characteristics estimated from the 3D model and a time difference to the second model. A plurality of prediction engines may be configured to predict a plurality of physical characteristics. The prediction engine may be trained by receiving two (or more) 3D models with measurements of the same animal at different times (a first time and a later second time) in the animal’s lifespan, e.g., one when juvenile and another when adult. Instead of models, the prediction engine may be trained by using characteristics (other than the 3D models) of the animal at the first and / or second times. The prediction engine may then apply a machine learning algorithm to correlate characteristics of the animal between the different times and to define a prediction model. For example, a larger than average weight: length ratio at the first time may correlate to a larger than average weight at the second time.
[0060] The prediction engine may be trained by receiving two 3D models with measurements of the same animal at different times (a first time and a later second time) in the animal’s lifespan, e.g., one when juvenile and another when adult. The machine learning model may be trained with feature data, that is data to be inputted when in use, and label data, that is data that will not be inputted when in use but will supervise the training, for supervised learning. Instead of models, the prediction engine may be trained by using characteristics of the animal at the first time and time difference to the second time as the feature data, and a characteristic of interest (e.g., weight) of the animal at the second time as the label data. The prediction engine may then apply a machine learning algorithm to correlate characteristics of the animal at the first time to a characteristic at the second time to define a prediction model. For example, a larger than average weight: length ratio at the first time may correlate to a larger than average weight at the second time.
[0061] The prediction engine may be trained with a plurality, e.g., hundreds, or thousands, or even more, of models of animals. In typical machine learning fashion, the more data available to train the learning algorithm, the more accurate the prediction model may be (up to a point).
[0062] Once trained, the prediction engine may be provided with only a single 3D model or associated measurements taken the first time (e.g. , when juvenile) and time difference, and may then apply the prediction model to estimate a characteristic of the animal at a future time (or a plurality of future times). While there may be various applications of this, one application may be to predict growth characteristics of cattle (e.g., at weaner stage) to indicate how they will grow or what adult characteristics they will have. This can be useful for estimating a current value of the weaner, based on its future value, based, in turn, on its future characteristics.
[0063] The invention extends to a method for photogrammetry of animals, the method including: defining, by a frame or support structure, a target area configured to accommodate an animal to be photographed; providing a plurality of camera assemblies, each camera assembly including a camera and a local controller coupled to the camera, the local controller configured to relay photograph settings to the camera and to trigger the camera to take a photograph, the camera assemblies being mounted to the frame and directed towards the target area, wherein the cameras in the plurality of camera assemblies are configured to take the photographs from different perspectives relative to one another; sensing, by a sensor of a control assembly, at least ambient lighting conditions and to generate a sensor signal comprising the sensed ambient lighting conditions; receiving, by a master controller of the control assembly, the master controller being coupled to the sensor, the sensor signal; determining, by the master controller, common photograph settings based on the sensed ambient lighting conditions; communicating, from the master controller, the common photograph settings to each local controller; communicating a trigger signal from the master controller to each local controller, to cause the local controller to trigger its coupled camera synchronously to take a photograph, using the common photograph settings, of at least a part of the animal; and receiving by the master controller, from each local controller the photograph it took.
[0064] The method may include uploading the photographs to a cloud-based storage, triggering (by a user of the web application) a download of the photographs to a 3D modelling engine configured to generate a 3D model of the animal based on the received photographs. The 3D modelling engine measures the 3D model as part of the method.
[0065] The method may include uploading the 3D model to the cloud-based storage and recording the measurements to a cloud-based SQL database.
[0066] The method may include predicting, by a prediction engine, future characteristics of the animal based on the 3D model and recorded measurements.
[0067] The invention extends to a computer-readable medium (which may be non-transitory) having stored thereon a computer program which, when executed, causes a computer or processor to perform the method defined above.
[0068] BRIEF DESCRIPTION OF DRAWINGS
[0069] The invention will now be further described, by way of example, with reference to the accompanying diagrammatic drawings.
[0070] In the drawings:
[0071] FIG. 1 shows a schematic view of a system for photogrammetry of animals, in accordance with the invention;
[0072] FIG. 2 shows a schematic view of another system for photogrammetry of animals, in accordance with another embodiment the invention; FIG. 3 shows a three-dimensional view of a frame of a system for photogrammetry of animals, in accordance with the invention;
[0073] FIG. 4 shows various views of a quadrant of the frame of FIG. 3;
[0074] FIG. 5 shows a top view of the quadrant of FIG. 4;
[0075] FIG. 6 shows a side view of the quadrant of FIG. 4;
[0076] FIG. 7 shows a front view of the quadrant of FIG. 4;
[0077] FIG. 8 shows a schematic view of a backend system for use with the system of FIG. 2;
[0078] FIG. 9 shows a schematic view of the backend system of FIG. 8 in use;
[0079] FIG. 10 shows a side view of a 3D model generated from a system similar to that of
[0080] FIG. 2;
[0081] FIG. 11 shows a schematic representation of a computer system within which a computer program, for causing the computer system to perform any one or more of the methodologies discussed herein, may be executed; and
[0082] FIG. 12 shows reference diagrams to define points of reference used in this specification.
[0083] DETAILED DESCRIPTION OF EXAMPLE EMBODIMENT
[0084] The following description of an example embodiment of the invention is provided as an enabling teaching of the invention. Those skilled in the relevant art will recognise that changes can be made to the example embodiment described, while still attaining the beneficial results of the present invention. It will also be apparent that some of the desired benefits of the present invention can be attained by selecting some of the features of the example embodiment without utilising other features. Accordingly, those skilled in the art will recognise that modifications and adaptations to the example embodiment are possible and can even be desirable in certain circumstances and are a part of the present invention. Thus, the following description of the example embodiment is provided as illustrative of the principles of the present invention and not a limitation thereof. FIG. 1 illustrates a basic system 100 for photogrammetry of animals, in accordance with the invention. The system 100 includes a frame 102 which defines, or is generally arranged around, a target area 104. The frame 102 may have a generally oval or ovoid configuration, but more particular examples of frame configurations are illustrated in FIGS 3-7. The target area 104 is intended to accommodate, at least momentarily, an animal 10 to be photographed or imaged. The animal may be a livestock animal, e.g., a weaner.
[0085] The frame 102 supports at least one control assembly 108 and a plurality of camera assemblies 113. The control assembly 108 has a master controller 110 and a sensor (or plural sensors) 112. The camera assemblies 113 each include a camera (or camera sensor) 116 and a local controller 114 configured to control the camera 116 and to cause the camera 116 to capture a photograph. More specifically, the local controller 114 can relay the settings of the camera 116, like resolution, aperture value, shutter speed, focal length, under-or-over exposure, image labelling, etc. which will, in turn, dictate the characteristics of the photograph taken by the camera 116. Also, the local controller 114 is configured to actuate the camera 116 to take the photograph, e.g., by triggering an electronic shutter, by generating or relaying a trigger signal.
[0086] The camera assemblies 113 are mounted to the frame 102, either permanently or removably. The camera assemblies 113 may have a displaceable or a fixed orientation; however, once the desired or calculated orientation is achieved, it may be desirable to lock them in place to inhibit inadvertent redirecting. The frame 102 may define fixed mounting points which configure cameras mounted thereto in a predefined position and orientation.
[0087] The cameras 116 are directed towards the target area 104, and may be inwardly directed. For example, the frame 102 may be wider than the target area 104, even enveloping the target area 104 partially or fully, and the cameras 116 may be inwardly directed towards the target area along the longitudinal or lateral axes. The cameras 116 may be laterally spaced around the target area 104 in order to obtain good coverage of the animal 10 in the target area 104, e.g., front, both sides, and back. The cameras 116 may be arranged to surround the animal 10 in use and / or arranged at different heights above ground , e.g., a high camera directed downwards, a mediumheight camera directed sideways, and / or a low camera directed upwards. Accordingly, each camera 116 is configured to take a photograph of a portion of the animal 10 from a particular orientation. Individually, the photographs may not provide a complete picture of the animal 10, but collectively they can.
[0088] The master controller 110 is configured to direct the operation, at least partially, of the camera assemblies 113. The master controller 110 is communicatively coupled, e.g., by means of a wired or wireless link 118, to each of the local controllers 114. The master controller 110 is able to send photograph settings, in the form of a single broadcast package, to the local controllers 114 which, in turn, cause the cameras 116 to operate with those photograph settings. Accordingly, global photograph settings (that is, settings that apply to a plurality of cameras) can be derived from a singular source (the master controller 110) and applied electronically (via the link 118).
[0089] The sensor 112 is coupled to the master controller 110 and serves to inform the master controller 110 about ambient light conditions. More specifically, the sensor 112 is operated to sense at least ambient lighting conditions and to send a sensor signal comprising the sensed ambient lighting conditions to the master controller 110. Based on the received sensor signal, the master controller 110 then determines a single set of ideal or desired photograph settings for all of the cameras 116.
[0090] The master controller 110 is also configured to trigger (or relay a trigger signal or single broadcast package containing all photograph settings) to the camera assemblies 113. The common photograph settings and the trigger signal may be communicated from the master controller 110 to the local controllers 114 simultaneously or sequentially. The photographs, once taken, are communicated to the control assembly 108 for onward communication to a remote recipient. Use of the photographs will be discussed further below.
[0091] FIG. 2 shows a slightly developed version of a system 200 for photogrammetry of animals. Many features are analogous to those of the system 100 of FIG. 1 and similar reference numerals (e.g., 108 and 208) denote similar features. The system 200 includes the frame 102 which defines the target area 104 to accommodate the animal 10.
[0092] A notable development in the system 200 is that the control assembly 208 and camera assemblies 213 are provided by similar or identical hardware, all being a type of camera assembly. The control assembly 208 has merely been configured differently, namely, to be the master, while the remaining assemblies have been configured as slaves. This may be convenient as it reduces the number of different hardware components required to construct the system 200.
[0093] The camera 212 with the master controller 210 doubles as the sensor 122 of the system 100. It may be used only to sense ambient lighting conditions, or both to sense and to take one of the photographs.
[0094] The system 200 includes two additional features not illustrated in the system 100, namely a user interface 220 and a network interface 222. The user interface 220 is coupled to the master controller 210. The user interface 220 may include a simple input arrangement, like a “take photograph” push button, to receive a simple input from a user, indicative of an action, like instructing the system 200 to take a photograph now. The user interface 220 may be more developed, e.g., including a display, to provide an output or information to a proximate user. It may also be configured to receive various inputs and the user may even be able to configure the system 200, or at least aspects thereof, via the user interface 220. The network interface 222 allows the system 200 to communicate with remote systems, e.g., cloud-based recipients, via a telecommunications network 250. The network interface 222 may be wireless, particularly where the system 200 is provided in remote locations, like farms or game reserves. The network interface 222 may therefore be embodied by a wireless module (like a cellular modem). The network interface 222 may be used to communicate instructions from a remote user (e.g., configuration instructions or a trigger instruction to take a photograph) and may be used as an output to send information, notably photographs, to the remote user. This functionality will be described further below.
[0095] FIGS 3-7 illustrate structural features of the frame 102 (with reference terminology given in FIG. 12). The frame 102 is divided into four largely symmetrical quadrants labelled as Q1-Q4. The frame 102 may be sized to accommodate a particular animal. In a farming or livestock application, the particular animal may be a juvenile bovine (e.g., a weaner). The frame 102 defines a longitudinal axis 302 which approximates a centreline of the particular animal. The longitudinal axis 302 may serve as a line of reference for orientating the cameras and is a height h above the ground; h may be 1.16 m.
[0096] FIGS 4-7 illustrate one of the quadrants (Q1 ) in more detail. The other quadrants may be similar or identical (e.g., Q3) or mirrored (Q2, Q4) and may overlap at their edges. The quadrant Q1 defines a plurality of zones Z1-Z6. Each zone will be described below.
[0097] A top zone Z1 is provided at a top of the quadrant Q1 and, in this front quadrant Q1 , the top zone Z1 is at a rear thereof. A top zone is also present in quadrant Q3 but not quadrants Q2, Q4.
[0098] The top zone Z1 has two cameras C1 , C2 which are provided at a top of the frame 102 and are 3.16 m and 3.13 m high respectively. Both cameras C1 , 02 are directed transversely / laterally inwardly being rotated by 90° around the vertical axis (that is pointed perpendicular to the longitudinal axis 302). Camera C1 is declined by 90° (that is, straight down) and is longitudinally offset (relative to a centre point) by 0.9 m. Camera C2 is declined 80° and is longitudinally offset by 0.3 m.
[0099] Blank zones Z2 are defined inside the frame 102, and between camera mounting points, and these blank zones lack cameras.
[0100] An upper side zone Z3 has two cameras C3, C4 which are downwardly directed or declined towards the target area 104. Both cameras C3, C4 are directed transversely / laterally being rotated by 90° around the vertical axis. Camera C3 is 2.45 m high, downwardly directed with a decline of 40° with no longitudinal offset. Camera C4 is 1 .84 m high, declined by 20° with no longitudinal offset.
[0101] This upper side zone Z3 is shared between, or overlaps, longitudinally aligned quadrants, that is, quadrants Q1 , Q2 and quadrants Q3, Q4. The frame 102 as a whole, comprising the four quadrants Q1-Q4, will only have two distinct upper side zones Z3 (one on the left, and another on the right).
[0102] A lower side zone Z4 also has two cameras C5, C6 which are upwardly inclined towards, or horizontally level relative to, the target area 104. Both cameras C3, C4 are directed transversely inwardly being rotated by 90° around the vertical axis. Camera C5 is 1.16 m high, horizontally directed with a 0° incline / decline with no longitudinal offset. Camera C6 is 0.16 m high, upwardly directed with a 30° incline with no longitudinal offset.
[0103] Like the upper side zone Z3, this lower side zone Z4 is shared between, or overlaps, longitudinally aligned quadrants, that is, quadrants Q1 , Q2 and quadrants Q3, Q4.
[0104] An oblique, or diagonal, zone Z5 has three cameras C7-C9 mostly directed obliquely / diagonally inwardly towards the target area. Camera C7 is 0.81 m high, upwardly directed with a 10° incline and a longitudinal offset of 0.9 m, and transversely directed being rotated by 90° relative to the vertical axis. Camera C8 is 0.81 m high, upwardly directed with a 10° decline and a longitudinal offset of 0.9 m, and obliquely inwardly directed being rotated by 70° relative to the vertical axis. Camera C9 is 1.51 m high, downwardly directed with a 10° decline and a longitudinal offset of 0.9 m, and obliquely inwardly directed being rotated by 70° relative to the vertical axis.
[0105] An archway zone Z6 is defined at an end of the target area 104, the archway zone Z6 comprising six cameras C10-C15 directed inwardly and obliquely or longitudinally towards the target area. The archway zones Z6 of the four quadrants Q1-Q4 together form an entrance to (quadrants Q1 , Q4) and exit from (quadrants Q2, Q3) the frame 102. The archway cameras C10-C15 are configured as follows:
[0106] C10: 0.48 m high, upwardly directed with a 20° incline, longitudinal offset by 0.9 m, and rotated 40° around the vertical axis.
[0107] C11 : 1.84 m high, downwardly directed with a 20° decline, longitudinal offset by 0.9 m, and rotated 40° around the vertical axis.
[0108] C12: 2.54 m high, downwardly directed with a 40° decline, longitudinal offset by 0.9 m, and rotated 50° around the vertical axis.
[0109] C13: 2.69 m high, downwardly directed with an offset from the vertical axis of 50° decline, longitudinal offset by 0.9 m, and rotated 30° around the vertical axis.
[0110] C14: 2.69 m high, downwardly directed with an offset from the vertical axis of 50° decline, longitudinal offset by 0.9 m, and rotated 0° around the vertical axis.
[0111] C15: 2.16 m high, downwardly directed with an offset from the vertical axis of 30° decline, longitudinal offset by 0.9 m, and rotated 10° around the vertical axis.
[0112] The orientations of the camera C1-C15 may be summarised in Table 1 as follows:
[0113] Table 1
[0114] All cameras C1-C15 may be directed towards the longitudinal axis 302. Accordingly, those cameras higher than 1.16 m are downwardly directed (0°-90° decline) and those lower than 1.16 m are upwardly directed (0°-90° incline). Given that cameras cannot be positioned lower than the ground, and to avoid a reduced field of view of the subject animal (camera positioned closer than 2 m from the horizontal midline), the highest upward rotation or incline is 30°. It should be noted that the specific placement or orientation of one or some of the cameras C1-C15 may be selected without necessarily requiring the specific placement or orientation of all of the other cameras C1-C15 in Table 1. In other words, the selection or choice of the cameras C1-C15 may be separable.
[0115] These values may vary by 10% and are expected to still achieve a useful result. The values are suited for measuring cattle. The estimated central representation of largest breed of weaner’s torso is illustrated by the horizontal midline (HM) running through the centre or origin (C / O) of the frame 102. The camera configuration is divided into zones Z1-Z6 based on camera position characteristics (numbered anti-clockwise from the top of the side view): the top cameras angled almost straight downwards (Z1 : dash- dot-dotted line), the blank zones containing no cameras (Z2: dash-dotted line), the upper side cameras on the central loop (Z3: long-dashed line), the lower side cameras on the same central loop (Z4: short-dashed line), the cameras offset from this central loop and slightly in front or behind the centre of the animal (Z5: brown diagonals), and lastly, the cameras making up the archway, angled in front or behind the animal (Z6: intermediate-dashed line). The camera station is 4-ways symmetrical except for the two cameras at the top (Z1 ) which are diagonally flipped.
[0116] FIGS 8-9 illustrate further features for the system 200. For clarity, the system 200 will be referred to as the frontend system 200 and it interfaces with a backend system 500 which includes a computer server 502. While the computer server 502 is illustrated as being a single device, it will be understood that it may be plural devices which are geographically distributed but networked together. The computer server 502 (or parts thereof) may be cloud-based, in which case it might not have individually identifiable components but is rather a networked collection of resources.
[0117] In this example embodiment, the computer server 502 includes a processor 504 and a non-transitory computer-readable medium 506 having stored thereon a computer program 508 which, when executed, directs the operation of the processor 504. The computer server 502 also includes a communication interface (e.g., a network interface) 520 for communication via the telecommunications network 250 with the frontend system 200.
[0118] The processor 504 (under direction of the computer program 508) defines a 3D modelling engine 510 and a prediction engine 512. Again, the engines 510, 512 may be realised by entirely different software suites running on different computers, so are not necessarily consolidated into a single installation as illustrated. The engines 510, 512 may be considered conceptual modules corresponding to functional tasks performed by the processor 504. It is to be understood that the processor 504 may be one or more microprocessors, controllers, or any other suitable computing device, resource, hardware, software, or embedded logic. The computer system 502 further includes a queueing database 530, storage 532, a web application 534, and an SQL database 536. Some or all of these components 530, 532, 534, 536 may be local (as illustrated) and / or cloud-based. The web application 534 is configured to provide a user interface and may therefore be accessible to a user 540 via the network interface 520. In turn, the web application 534 is communicatively coupled to each of the queueing database 530, the web storage 532, and the SQL database 536.
[0119] The storage 532 is configured to receive the plurality of photographs captured by the frontend system 200. The photographs are then parsed from the storage 532 to the 3D modelling engine 510 to generate a 3D model of the animal 10 based on the received photographs. A difficulty that many 3D modelling software packages may have is that combining photographs with different settings (e.g., different focal lengths, aperture settings, etc.) is more difficult and may distort the final 3D model. In addition, photographs taken at different times, even differing by only a second, may allow the animal to have moved during the respective photographs, again rendering the modelling process more difficult and / or distorting the final 3D model.
[0120] Accordingly, by receiving the plurality of photographs with identical photograph settings and taken simultaneously (relative to a movement speed of the animal 10), this substantially increases the accuracy of the final 3D model and / or decreases the amount of work required to render the 3D model. This may be one of the advantages of the invention.
[0121] The prediction engine 512 uses the measurements or the 3D model generated by the 3D modelling engine 510 (or from another source) and uses a plurality of prediction models 514 to establish or predict growth characteristics, or other future attributes, of the animal 10. The prediction models 514 may be trained with machine learning and a plurality of previously-generated 3D models tracking the growth or change of animals over time (with at least two points in time). The prediction model 514 may be trained using existing machine learning algorithms, but reliable measurements from 3D models created from the plurality of photographs with the same settings may enhance the accuracy of the model 514 and / or reduce the training time.
[0122] The invention will be further described in use, with reference to various test scenarios and results. Initially, the modelling process will be described, and then usage or further application of the models will be described.
[0123] The cameras 216 (C1-C14) are arranged peripherally around the animal 10, for a comprehensive 360° view, at their various defined locations and orientations. Depending on the target animal 10, the arrangement of the cameras 216 may be adjusted or tailored. In this example, there are 48 cameras 216. The controllers 210, 214 are Raspberry PI Zero W computer boards and the cameras 212, 216 are Raspberry Pi camera attachments (although GoPro™ cameras were also successfully tested).
[0124] As described above, the master controller 210 receives an instruction to take the photographs. The instruction, in this example, comes from the operator via the user interface 220 (e.g., resembling a shutter button on a handheld camera). The camera 212 linked to the master controller 210 senses ambient lighting conditions. This camera 212 may be placed at a central location to approximate overall conditions of the plurality of other cameras 216. Instead, the instruction may come from a motion sensor, pressure sensor, RFID tag read by an RFID reader, etc.
[0125] The master controller 210 translates the sensed ambient lighting conditions to common photograph settings and (1 ) communicates those common photograph settings to the slave controllers 214 and (2) communicates a trigger signal (single broadcast package) to the slave controllers 214 (for which communications may be simultaneous or sequential). The master and slave controllers 210, 214 then trigger their respective connected cameras 212, 216 each to take a photograph, with the same common photograph settings and at the same instant in time. After each of the photographs are taken, the respective slave controllers 214 communicate the photographs from their coupled cameras 216 to the master controller 210. The master controller 210, in turn, forwards the photographs via the network interface 222, across the telecommunications network 250, to the storage 532, which may be cloud-based storage, of the backend system 500.
[0126] FIG. 9 illustrates the processing in further detail. The plurality of photographs 600 are received, via the network interface 520, and parsed to the 3D modelling engine 510 (e.g., PhotoModeler). The 3D modelling engine 510 translates the plurality of individual, 2D photographs into a 3D model 702 of the animal 10.
[0127] Ideally, the Applicant aims for the 3D modelling engine 510, once properly configured and calibrated, to produce the 3D model 602, 702 without any user input, thus being relatively quick, even near real-time. However, this might not always be practicable. Accordingly, the 3D modelling engine 510 is configured to receive a supervised input 603 from a qualified user to influence the generation of the 3D model 602. The supervised input 603 may be manually placed features, directions about how to combine the photographs 600 or corrections to the 3D model 602. In addition, the supervised input 603 may include actual measured values (e.g., height and / or length) of a component of the scene to calibrate / scale the 3D model 602. FIG. 10 shows a different view of the 3D model 702 presented in a photorealistic environment.
[0128] The 3D model 602, 702 may then be output or sent to designated recipients, e.g., farm owners, for immediate use. The 3D model 602, 702 may include, e.g., in the form of metadata, various numerical measurements and characteristics derived from the model. Instead, the 3D model may be sent to a separate measurement engine to derive the measurements from the 3D model. The measurements may include estimated weight or dimensions of the animal or estimations of characteristics, like horn length, shoulder height, etc. This may be useful as various measurements can be obtained (or at least estimated) for an animal 10 without physically needing to measure or weigh the animal 10. By way of further development, in addition to indicating current characteristics, the system 200, 500 may be used to predict future characteristics. By communicating the measurements from the 3D model 602 to the prediction engine 512, and using a previously generated prediction model 514, the prediction engine 512 can provide predicted future characteristics 604. These predicted future characteristics 604 can then be forwarded to interested parties, e.g., farmers, game reserve owners, animal scientists, etc. More information from which to train the prediction model 514 typically leads to smaller variance or greater confidence in the predicted results.
[0129] The Applicant notes that the accuracy of the predicted future characteristics 604 may be dictated, or at least influenced, by (1 ) the accuracy of the 3D model 602 supplied to the prediction engine 512, (2) the completeness and degree of training of the prediction model 514 (which serves to correlate the present 3D model 602), (3) accuracy of the measurements, or present characteristics obtained from the 3D model 602, with the predicted future characteristics 604). As mentioned above, the accuracy of the 3D model 602 is good because of (among other things) the synchronicity of captured photographs and common photograph settings.
[0130] The prediction model 514 is trained with many 3D models or animals 10 - the more, the better. This may be done by providing two or more 3D models of the same animal 10 taken at different times, e.g. , a first time being when a cow is a weaner and a second time being when the same cow is ready for slaughter. This can correlate juvenile characteristics with adult characteristics. Also potentially useful, but possibly less comprehensive, is to provide this data manually, e.g., provide actual measurements of the animal 10 at two separate times instead of providing the 3D model of that animal; a hybrid approach may also be practicable, e.g., provide a 3D model at the first time and provide the measured or observed characteristics at the second time. This could be useful if only a small number of adult characteristics, e.g., adult size and / or growth rate, is ultimately valuable.
[0131] An example use case of this is a farmer considering which weaner 10 (juvenile cow or calf) to purchase. After scanning the weaner 10 with the frontend system 200, obtaining the 3D model 602 and measurements from the backend system 500 and providing it to a plurality of prediction models by the prediction engine 512, one or more predicted characteristics may be obtained. The farmer may only be primarily interested in one or two characteristics, e.g., Feed Conversion Ratio (FCR) which indicates how efficiently the weaner 10 would convert feed into body mass. A higher FCR may make the weaner 10 more valuable and conversely a lower FCR may make a weaner 10 less valuable. The purchaser and / or seller can take this into account and determine an appropriate sale price, indicative of the predicted growth characteristics of the weaner 10. This could be used for different purposes, e.g., suitability for breeding, etc.
[0132] FIG. 11 illustrates a diagrammatic representation of a computer system 1100 within which a set of instructions, for causing the computer system 1100 to perform any one or more of the methodologies described herein, may be executed. In a networked deployment, the computer system 1100 may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer- to-peer (or distributed) network environment.
[0133] The computer system 1100 may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a tablet, a web appliance, a network router, switch or bridge, or any computer system 1100 capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that computer system 1100. Further, while only a single computer system 1100 is illustrated, the term “computer” shall also be taken to include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
[0134] The example computer system 1100 includes a computer processor 1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both, a main memory 1104 and a static memory 1106, which communicate with each other via a bus 1108. The computer system 1100 may further include a video display unit 1110 (e.g., a liquid crystal display (LCD)). The computer system 1100 also includes an alphanumeric input device 1112 (e.g., a keyboard or touchscreen), a user interface (Ill) navigation device 1114 (e.g., a mouse or touchscreen), a disk drive unit 1116, a signal generation device 1118 (e.g., a speaker) and a network interface device 1120.
[0135] The disk drive unit 1116 includes a computer-readable medium 1122 on which is stored one or more sets of instructions and data structures (e.g., computer software or a computer program 1124) embodying or utilised by any one or more of the methodologies or functions described herein. The computer software 1124 may also reside, completely or at least partially, within the main memory 1104 and / or within the processor 1102 during execution thereof by the computer system 1100, the main memory 1104 and the processor 1102 also constituting computer-readable media. The computer software 1124 may further be transmitted or received over a network 1126 via the network interface device 1120 utilising any one of a number of well-known transfer protocols (e.g., HTTP, FTP, SCP, etc.).
[0136] While the computer-readable medium 1122 is shown in an example embodiment to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralised or distributed database, and / or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the computer system 1 100 and that cause the computer system 1100 to perform any one or more of the methodologies of the present embodiments, or that is capable of storing, encoding or carrying data structures utilised by or associated with such a set of instructions. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media. The computer-readable medium may be a non-transitory medium.
[0137] The backend system 500 and / or one or more of the controllers 110, 114, 210, 214 may include at least some of the components of the computer system 1100.
[0138] The Applicant believes that the invention as exemplified has several advantages. The use of synchronised cameras 116, 216 - both in terms of settings and timing - enables the provision of more accurate 3D models 602 and / or enables easier generation of these 3D models 602. This, in turn, enables provision of more accurate characteristics of the animal 10 approximated by the 3D model 602. This could also be used for more accurate prediction of future characteristics.
[0139] It provides the ability to process a large volume of photographs, and associated measurements, with reduced manual intervention.
[0140] It has ethical advantages of not needing to physically handle animals is a breakthrough, while providing any additional measurements (e.g. volume, surface area, linear, curved, and geometric) that even with physical intervention are impractical / impossible to measure, e.g., animal volume.
[0141] Measurement acquisition, processing and further modelling can be done within a workflow, which reduces the time required to eventually build predictive databases for various species / breeds etc.
[0142] 3D models provide a digital library that can be returned to for added measurement acquisition (unlike physical interaction with an animal in the field, which is a discrete interaction, and thus if further measurements were sought, one would need to start a new interaction with the animal again, which is not the case with a digital model).
[0143] The use of a carefully configured frame divided conceptually in quadrants simplifies frame construction.
[0144] Further, the use of quadrants simplifies camera configuration and positioning.
Claims
CLAIMSWhat is claimed is:
1. A system for photogrammetry of animals, the system including: a frame or support structure defining a target area configured to accommodate an animal to be photographed, the frame further defining orthogonal axes, namely a longitudinal (front-to-back) axis, a lateral (side- to-side) axis, and a vertical (upright) axis; at least 20 camera assemblies, each camera assembly including: a camera mounted to the frame and directed towards the target area configured to take a photograph of at least a portion of the animal; and a local controller coupled to the camera, the local controller configured to relay photograph settings to the camera and to trigger the camera to take the photograph, wherein the cameras in the plurality of camera assemblies are configured to take the photographs from different perspectives relative to one another; a control assembly comprising: a sensor configured to sense at least ambient lighting conditions and generate a sensor signal comprising the sensed ambient lighting conditions; and a master controller coupled to the sensor and configured to: receive the sensor signal and determine common photograph settings based on the sensed ambient lighting conditions; communicate the common photograph settings to each local controller; communicate a trigger signal to each local controller, to cause each local controller to trigger its coupled camera synchronously to take a photograph of a part of the animal; and wherein:the frame is divided into four similar quadrants or quarters, in plan view; and each quadrant is configured into a plurality of zones having different camera mounting orientations, the zones including: an upper side zone comprising at least two cameras which are downwardly directed towards the target area; a lower side zone comprising at least two cameras directed transversely or upwardly towards the target area; an oblique zone comprising at least two cameras directed longitudinally, inwardly, or transversely towards the target area; and an archway zone at an end of the target area, the archway zone comprising at least four cameras directed longitudinally inwardly towards the target area.
2. The system as claimed in claims 1 , in which the quadrants have symmetry and are rectangularly arranged including a front left, a front right, a rear left, and a rear right quadrant.
3. The system as claimed in any one of claims 1-2, in which at least some of the cameras in some of the zones are common or shared between quadrants.
4. The system as claimed in any one of claims 1-3, which includes a top zone present in at least one, but not all, quadrants, the top zone including two cameras which are declined at an angle of 90°-60° relative to the vertical axis and are 2.8- 3.5 m high.
5. The system as claimed in any one of claims 1-4, in which the cameras of the upper side zone are declined by 50°-10° from the vertical axis and are 1.5-2.8 m high, and are common to, or shared between, longitudinally aligned quadrants.
6. The system as claimed in any one of claims 1-5, in which the cameras of the lower side zone are inclined by 0°-45° from the vertical axis and are 0-1.5 m high.
7. The system as claimed in any one of claims 1-6, in which the cameras in the oblique zone are orientated obliquely to transversely or at an angle of 60°-90°, are 0.5-2.0 m high, and are longitudinally offset by 0.5-1 .2 m.
8. The system as claimed in any one of claims 1-7, in which the cameras in the archway zone are at an end of the frame, are declined by 60° to inclined by 20°, are 0.2-3.5 m high, have a longitudinal offset of 0.5-1 .2 m, and are rotated about the vertical axis by 0°-50°.
9. The system as claimed in any one of claims 1-8, which includes a communication interface and in which the master controller is configured to upload to a remote recipient a photographic set including the photographs taken by the camera assembly.
10. The system as claimed in any one of claims 1-9, in which: the control assembly is one of the camera assemblies designated as a master camera assembly; and the local controller of the master camera assembly is the master controller.
11. The system as claimed in any one of claims 1-10, in which the common photograph settings are communicated to the cameras assemblies from the master controller in the form of a single broadcast package which includes one or more of aperture setting, shutter speed, image size, image resolution, image labelling and / or ISO setting.
12. The system as claimed in any one of claims 1-1 1 , which is configured to receive an input to cause the triggering of the cameras and in which the input is one or more of: one of the cameras or the sensor connected to a master controller configured to detect motion that indicates that the animal is in the target area; a RFID reader connected to the master controller that indicates that the animal with an RFID tag is in the target area a user instruction from a user interface; or a signal from a proximity or motion sensor connected to a master controller indicating that an animal is in the target area.
13. The system as claimed in any one of claims 1-12 further includes a 3D (Three- Dimensional) modelling engine configured to: receive the photograph from each of the plurality of cameras; generate a 3D model of the animal based on the received photographs; and measure a 3D model of the animal.
14. The system as claimed in claim 13, in which the camera assemblies are provided in a frontend part of the system and the 3D modelling engine is provided in a backend part of the system, the frontend and backend parts of the system being geographically separated from each other but networked together.
15. The system as claimed in claim 14, in which the backend part of the system further includes a web application configured to: provide access to users to a photographic set for brief review; permit users to assign a photographic set I project for automated 3D modelling and track its status;add projects to a cloud-based queue for automated processing by the 3D modelling engine; receive projects at stages requiring manual intervention / supervision; permit download of final 3D models by users from the cloud-based storage; and / or record measurements in a cloud-based SQL database to continuously refine predictive-model building.
16. The system as claimed in any one of claims 13-15, in which the 3D model from the 3D modelling engine is used to estimate or derive one or more physical characteristics of the animal from the 3D model.
17. The system as claimed in any one of claims 13-16, which includes a prediction engine configured to predict future characteristics of the animal based on the 3D model and measurements from the measurement engine.
18. A method for photogrammetry of animals, the method implemented on the system as claimed in any one of claims 1-17 and including: sensing, by the sensor of a control assembly, at least ambient lighting conditions and generating a sensor signal comprising the sensed ambient lighting conditions; receiving, by the master controller of the control assembly, the master controller being coupled to the sensor, the sensor signal; determining, by the master controller, common photograph settings based on the sensed ambient lighting conditions; communicating, from the master controller, the common photograph settings to each local controller; communicating the trigger signal from the master controller to each local controller, to cause the local controller to trigger its coupled camerasynchronously to take a photograph, using the common photograph settings, of at least a part of the animal; and receiving by the master controller, from each local controller the photograph it took.
19. The method as claimed in claim 18, which includes communicating the photographs to a 3D modelling engine configured to generate a 3D model of the animal based on the received photographs.
20. The method as claimed in claim 19, which includes predicting, by a prediction engine, future characteristics of the animal based on the 3D model or measured physical characteristics.
21. A computer-readable medium having stored thereon a computer program which, when executed, causes a computer to perform the method as claimed in any one of claims 18-20.
Citation Information
Patent Citations
Xinjiang brown cattle body size index measurement system
CN105554415A
Intelligent aisle device for beef cattle body type parameter acquisition and motion health recognition
CN113678751A
Scanning system and scanning method for recording animal measurements
EP4403027A1
Information processing server, information processing method and program
KR1020240105185A