Omnidirectional water surface vehicle
By designing an omnidirectional surface vehicle (OSV) to automatically detect abnormalities in the underwater structure, the problems of low cage inspection efficiency and diver safety risks in the aquaculture facilities in the prior art are solved, and efficient and safe cage inspection is achieved.
Patent Information
- Application Number
- CN202411337386.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-01
- Filing Date
- 2024-09-25
- Publication Date
- 2025-04-01
AI Technical Summary
In the prior art, cage inspections of aquaculture facilities mainly rely on human divers, pose health and safety risks, and are inefficient, resulting in loss of fish resources.
An omnidirectional surface vehicle (OSV) is designed with a buoyancy compartment, a thruster, a camera and an image processor that can automatically detect abnormalities in the underwater structure, such as unexpected holes in the cage net.
Through the automated OSV system, the risk of divers is reduced, inspection efficiency and accuracy are improved, and the loss of fish resources is reduced.
Smart Images

Figure CN119734810A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to apparatus for inspecting water-based structures, in particular aquaculture facilities. Background Art
[0002] Aquaculture, also known as fish farming, accounts for nearly half of the fish consumed by humans. However, the risk of fish escaping from aquaculture facilities (e.g., due to cage net failure) poses a significant challenge to the economy and the environment. Such cage net failures can be a failure of the net structure, whereby the net now has larger holes than when it was originally designed. Typically, the integrity of the net is checked by human divers, however, such checks can present health and safety risks to the divers as well as potential loss of fish stocks. Summary of the invention
[0003] The following presents a summary of the invention to provide a basic understanding of one or more embodiments described herein. The summary of the invention is not intended to identify key points or key elements, or to explain any scope of different embodiments and / or any scope of the claims. The sole purpose of the summary of the invention is to present some concepts in a simplified form as a prelude to the more detailed description presented herein.
[0004] In one or more embodiments described herein, systems, methods, apparatus, and / or computer program products are provided that facilitate operation of an omnidirectional surface vehicle (OSV) to detect anomalies present in underwater structures, such as unexpected holes in a net.
[0005] One or more embodiments described herein provide an OSV comprising two or more buoyancy tanks configured to provide support forces on the surface of a body of water. The OSV may also include a propeller and a camera configured to navigate the OSV according to a location, wherein the direction of the camera is adjustable.
[0006] In an embodiment, two or more buoyancy tanks may each include a hollow spherical structure formed by two separable halves, wherein one or more buoyancy tanks are adapted to accommodate corresponding one or more components to be transported.
[0007] In another embodiment, operation of the propeller may be configured to facilitate movement of the OSV at the surface of a body of water, wherein the propeller is coupled to a conduit passage, and wherein operation of the propeller causes fluid to be drawn into or expelled from the conduit passage.
[0008] In an embodiment, the OSV may include an image processor configured to: receive image data from the camera; process the image data; and further determine the integrity of the structure based on the image data. The structure may be a net in an aquaculture facility.
[0009] In an embodiment, the camera further comprises a lens focuser configured to adjust the focus of the camera as part of being able to determine the integrity of the structure.
[0010] In another embodiment, the OSV may further include a position manager configured to: determine at least one of a position of the OSV and an alignment of the OSV; further generate and transmit first position data including at least one of the position of the OSV and the alignment of the OSV. The image processor may further be configured to: receive the first position data; and determine at least one of a location or a size of a fault in the integrity of the structure based on the first position data.
[0011] In another embodiment, the location manager may be further configured to: (a) receive second location data and / or third location data, wherein the second location data is received from a first device remote from the OSV and the third location data is received from a second device located on the OSV; and (b) determine at least one of the position of the OSV and the alignment of the OSV based on at least one of the second location data and the third location data.
[0012] In an embodiment, the OSV includes five buoyancy tanks, the arrangement of the five buoyancy tanks includes: a central buoyancy tank, four buoyancy tanks other than the central buoyancy tank are attached to the central buoyancy tank, wherein the four buoyancy tanks are arranged in a diamond pattern around the central buoyancy tank, and the arrangement of the four buoyancy tanks includes a front buoyancy tank, a rear buoyancy tank, a right buoyancy tank positioned between the front buoyancy tank and the rear buoyancy tank, and a left buoyancy tank positioned between the front buoyancy tank and the rear buoyancy tank, and wherein the right buoyancy tank is located opposite the left buoyancy tank. In an embodiment, the camera may be located at the front buoyancy tank.
[0013] In an embodiment, the propeller may be a first propeller, and the OSV may further include a second propeller configured to operate in conjunction with the first propeller to navigate the OSV in a position, wherein navigation of the OSV at the surface of the body of water can be omnidirectional.
[0014] In yet another embodiment, a computer-implemented method is provided, wherein the method includes: receiving, by a device including at least one processor, an image of a structure, wherein the image is received from a camera located on an omnidirectional surface vehicle (OSV), the OSV being configured to operate at the surface of a fluid; further processing, by the device, the image; and further determining, by the device based on a result of the processing, the integrity of the structure. The structure may be a net located at an aquaculture facility, and the net is located below the surface of the fluid. As previously described, the OSV may include a set of buoyancy tanks that are collectively combined to form a floating platform, on which a camera and at least one propeller are disposed, the propeller being configured to position the OSV at the surface of the fluid. The set of buoyancy tanks includes a central tank, a front tank attached to the central tank, a rear tank attached to the central tank and disposed opposite the front tank, a right tank attached to the central tank located between the front tank and the rear tank, and a left tank attached to the central tank located between the front tank and the rear tank, and wherein the left tank is located opposite the right tank. In an embodiment, the computer-implemented method may further include: (a) determining, by the device, at least one of an alignment of the OSV and a position of the OSV; (b) determining, by the device, a viewpoint of a camera located on the OSV based on at least one of the alignment of the OSV and the position of the OSV; (c) determining, by the device, a focus of the camera, wherein a feature of interest is positioned as part of the structure at the focus of the camera; and (d) determining, by the device, a position of the feature of interest relative to the camera based on at least one of the viewpoint of the camera and the focus of the camera.
[0015] In yet another embodiment, the computer-implemented method further comprises determining, by the device, a size of a feature of interest, wherein the feature of interest is a first hole in the mesh, wherein the size of the feature of interest is determined based on known sizes of standard size hole openings in the pattern of standard size holes in the mesh.
[0016] Yet another embodiment may include a computer program product stored on a non-transitory computer readable medium and including machine executable instructions, wherein the computer readable medium is located on an OSV, and wherein, in response to being executed by the machine executable instructions, the OSV is caused to perform operations comprising: generating one or more images of a net, wherein the net is located in an aquaculture facility and the one or more images are generated by a camera located within a first buoyancy compartment forming the OSV; further examining the one or more images to determine whether an anomaly is present in the net; in response to determining that an anomaly is present, identifying a location of the anomaly based on at least one of a location of the OSV, an orientation of the OSV, a field of view of the camera, and a location of a lens in the camera; and in combination with the location of the anomaly, generating an image with the anomaly identified on the image.
[0017] In an embodiment, the first buoyancy tank may be attached to at least one other buoyancy tank included in a group of buoyancy tanks, and wherein the group of buoyancy tanks is arranged to form a floating platform, the floating platform configured to transport the camera.
[0018] In another embodiment, the OSV further comprises a first propeller located in a second buoyancy tank in the set of buoyancy tanks and a second propeller located in a third buoyancy tank in the set of buoyancy tanks, and wherein the first propeller and the second propeller are configured to move the OSV across the surface of the body of water.
[0019] In another embodiment, the operations further include: receiving an OSV position command identifying an operating position of the OSV; and controlling operation of the first thruster or the second thruster to control positioning of the OSV according to the OSV position command. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] One or more embodiments are described below in the detailed description section with reference to the accompanying drawings:
[0021] Figure 1A and Figure 1B A schematic diagram of an OSV system is shown according to one or more embodiments.
[0022] Figure 2A A schematic diagram illustrating a side view of an OSV according to one or more embodiments.
[0023] Figure 2B A schematic diagram of determining the presence of an anomaly according to one or more embodiments is shown.
[0024] Figure 3A and Figure 3B is a schematic diagram illustrating an exemplary system for further illustrating various components of a positioning system / power distribution including an OSV, according to one or more implementations.
[0025] Figure 4A and Figure 4B is a schematic diagram illustrating an exemplary signaling system utilized in an OSV according to one or more embodiments.
[0026] Figure 5 A schematic diagram is shown of an exemplary electrical system for switching operational control of an OSV between a local controller and a remote controller according to one or more implementations.
[0027] Figure 6 An exemplary flow chart of a computer-implemented method for increasing in-plane image resolution is shown in accordance with one or more embodiments.
[0028] Figure 7An exemplary computer-implemented method for inspecting a structure utilizing an OSV is shown in accordance with an embodiment.
[0029] Figure 8 An exemplary computer-implemented method for inspecting a structure utilizing an OSV is shown in accordance with an embodiment.
[0030] Fig. 9 An exemplary computer-implemented method for inspecting a structure utilizing an OSV is shown in accordance with an embodiment.
[0031] Fig.10 An exemplary environment is shown for implementing the various embodiments described herein.
[0032] Fig.11 An exemplary wireless communication system is shown in accordance with one or more embodiments described herein.
[0033] It should be understood that the drawings shown in the drawings are not drawn to scale. Wherever possible, the same reference numerals are used throughout the drawings and accompanying written description to refer to the same or like parts. DETAILED DESCRIPTION
[0034] The following detailed description is merely illustrative and is not intended to limit the embodiments and / or applications or uses of the embodiments. In addition, there is no intention to be limited by any expressed and / or implicit information presented in any of the previous background, summary and / or detailed description sections.
[0035] One or more embodiments are now described with reference to the accompanying drawings, wherein the same reference numerals are used to refer to the same elements throughout. In the following description, for the purpose of explanation, many specific details are set forth to provide a more thorough understanding of one or more embodiments. However, it is apparent that in various cases, one or more embodiments may be practiced without these specific details.
[0036] It should be understood that when an element is referred to as being "connected" to another element, it may describe one or more different types of connections, including but not limited to chemical connections, communication connections, electrical connections, electromagnetic connections, operational connections, optical connections, physical connections, thermal connections, and / or similar types of connections. Similarly, it should be understood that when an element is referred to as being "connected" to another element, it may describe one or more different types of connections, including but not limited to electrical connections, electromagnetic connections, operational connections, optical connections, physical connections, thermal connections, and / or similar types of connections. As used herein, "data" may include metadata. In addition, a range An is utilized herein to represent a corresponding plurality of devices, components, signals, etc., where n is any positive integer.
[0037] 1. Overview
[0038] As further described herein, an omnidirectional surface vehicle (OSV) for offshore / aquatic applications is presented. The OSV is configured to inspect water-based structures, such as aquaculture fish cage / net inspection. It should be understood that while various embodiments presented herein relate to inspection of aquaculture facilities, the various embodiments may be equally applicable to inspection of any structure / infrastructure located on or in a body of water (such as bridge supports, offshore / aquatic vessels, oil rigs, port piers / embankments, piers, underwater pipelines, underwater cables, environmental monitoring / mapping, ocean bathymetry, tracking and reporting the location of divers, etc.). It should also be understood that while various embodiments presented herein regarding the operation of the OSV are directed to operations on and / or near the surface of a body of water, the OSV may be implemented on any fluid capable of modifying the various embodiments presented herein regarding the use of a camera to inspect a structure. It should also be understood that while the various embodiments presented herein involve utilizing a camera (e.g., using the visible light portion of the electromagnetic spectrum) to study structures, any suitable device such as a radar system, laser reflection system, etc., may be utilized, wherein a suitable device may be utilized to generate an image, signal, etc., thereby enabling the integrity of the structure to be evaluated.
[0039] According to various embodiments, an OSV is provided having a multi-hull design for achieving omnidirectional maneuverability in an aquaculture facility. In an embodiment, the various components of the multi-hull design may be symmetrically arranged. The OSV may include an overdrive configuration having a pipeline thruster that provides redundancy and reliability in a complex fish farm environment. The OSV may also be equipped with a camera, wherein the camera may include a motorized positioner for performing fish cage inspections at various / different depths. In addition, artificial intelligence (AI) and machine learning (ML) techniques and methods may be utilized to identify the integrity of a structure (e.g., a net) and potential damage to the structure. For example, a neural net-based damage detection function may be configured to identify net damage based on the detection / identification of a mesh that is irregularly shaped compared to the expected hole shape in a fictitious net structure. In an embodiment, various AI / ML techniques and methods may be implemented using a separate hardware acceleration device, thereby enabling robust and accurate detection of net failures by performing multiple checks on each failure / damage point. In another embodiment, the OSV may include high-precision positioning equipment on board to determine the position, direction, depth, inclination, orientation, etc. of the OSV, from which the damaged / non-damaged location of the fish cage / net may be further determined.
[0040] Various embodiments of OSV provided herein provide benefits superior to manual cage net inspections performed by human divers. Complex fish farm environments pose risks to the life and health of divers. Many fish farms have low visibility and strong currents underwater. When diving in an aquaculture farm, there is also a risk of being entangled in a net. In contrast, cage net inspections using OSVs do not require diver intervention, and any human-related operations can be performed remotely (e.g., from shore, on board, etc.). In addition, deploying multiple OSVs at one time can increase the inspection rate. In addition, implementing one or more OSVs can fully automate the inspection process, such as further reducing the inspection cost compared to diver inspections. In addition, OSVs provide benefits superior to remotely operated vehicles (ROVs), which may require qualified operators to perform tasks safely and effectively, and therefore, using ROVs to inspect large aquaculture farms may be time-consuming / expensive. In addition, ROVs are typically connected by tethers to achieve power supply and communication, whereby tether cables can complicate / limit inspections in a fish farm environment. Since positioning, navigation and communication are challenging for autonomous underwater vehicles (AUVs) in aquaculture inspection applications, OSVs can provide benefits over AUVs. As surface vehicles, OSVs have significantly fewer limitations in these areas, and a wide range of positioning and communication equipment is integrated on OSVs. In addition, omnidirectional mobility is a very advantageous feature for aquaculture fish cage inspections relative to conventional surface vehicles. However, surface vehicles are typically designed for cruising and cannot move omnidirectionally.
[0041] 2. Omnidirectional surface vehicle
[0042] Now referring to the accompanying drawings, Figure 1A and Figure 1B A schematic diagram of an OSV system 100 is shown, according to one or more embodiments. Figure 1A is an orthogonal top view of OSV 100, and Figure 1B An isometric view of the OSV 100.
[0043] As previously described, OSV 100 may be utilized to assess the integrity of a structure (e.g., net 105 at an aquaculture facility), whereby net 105 may include a pattern of holes 106A-n as well as defective / unintended holes 107, wherein hole 107 has one or more dimensions greater than hole 106.
[0044] As shown, the OSV 100 may include a set of buoyant, waterproof tanks 110A-n configured to support various onboard components during operation of the OSV 100. Figure 1A and Figure 1BIn the configuration shown in FIG. 1 , the cabins 110A-n include a front cabin 110A, a rear cabin 110B, a right cabin 110C, a left cabin 110D, and a center cabin 110E. It should be understood that although Figure 1A and Figure 1B An OSV 100 is shown having five pods 110A-E, but any number of pods may be utilized in any suitable configuration according to various embodiments herein. In an embodiment, the pods 110A-E may be configured to form a symmetrical multi-hull design for omnidirectional maneuverability.
[0045] The pods 110A-n may be of any suitable shape to facilitate movement / positioning of the OSV 100, operation of onboard cameras (e.g., camera 120 as further described), and / or onboard positioning of various components / equipment to facilitate operation of the OSV 100 and communication with remote systems. Figure 1A and Figure 1B In the example configuration shown in FIG. 1 , one or more of the capsules 110A-n may each have a hollow sphere configuration / shape, whereby the respective halves of the hollow sphere may be opened to facilitate placement of equipment to be transported during operation of the OSV 100. Figure 1A and Figure 1B The pods 110A-n are shown as hollow spheres, but the pods 110A-n may be any suitable shape, such as a hollow cuboid, a hollow polyhedron, a hollow ring / donus, a hollow cylinder, a hollow prism, any hollow shape, or any suitable combination of hollow spheres, hollow cuboids, hollow shapes, etc. In addition, non-hollow forms may be incorporated into the OSV 100 in forms such as made of polyethylene, polystyrene foam, vinyl covered forms, wood, plastic, balsa wood, low density materials, etc. For example, rather than a hollow sphere, the pod 110E may have a plastic (having a density less than the fluid 210, see FIG. 2 ) attached to the pods 110A-D. Figure 2A ) in a solid form. In another embodiment, the respective dimensions (eg, diameters) of the individual compartments 110A-n may be of different sizes, such as Figure 1A The outer four tanks 110A-D shown in FIG. B may have a larger diameter than the center tank 110E, such that the outer four tanks 110A-D provide positional stability for the OSV 100, while the center tank 110E is used to connect the outer four tanks 110A-n.
[0046] The individual pods 110A-n may be attached together by any suitable fasteners or means for attaching pods 110A-n, for example, by attachment means (e.g., fasteners 250, see Figure 2B ) are connected together, thereby enabling the replacement of a cabin (e.g., the leaking cabin 110B) with a waterproof cabin (e.g., replacing the leaking cabin 110B with a new waterproof cabin 110n).
[0047] The configurable cabins 110A-n enable the OSV 100 to be designed to streamline inspection of aquaculture fish cages. Any suitable configuration of cabins 110A-n may be utilized, for example, Figure 1A and Figure 1B The exemplary configuration of the OSV 100 shown in FIG. 1 has a symmetrical four-hull design that enables omnidirectional mobility, damage resilience, and increased payload capacity (e.g., compared to conventional systems). The exemplary symmetrical multi-hull configuration of the pods 110A-n enables the OSV 100 to maintain lateral and longitudinal fluid dynamics that may be essentially the same, thereby facilitating controlled omnidirectional traversal / motion. The pods 110A-n combine to form a payload platform, wherein equipment that may contribute to hydrodynamic drag (e.g., camera 120) is strategically positioned at / near the geometric center of the OSV 100, thereby preventing any unnecessary steering torque during operation of the OSV 100. The core electronic systems (computer system 180, controller 190, thrusters 112A-n) and battery packs (e.g., batteries 140A-n) can be located in oppositely disposed compartments (e.g., compartments 110A and 110B, compartments 110C and 110D, etc.) so that the symmetrical payload compartments 110A-n and the central platform (e.g., formed by compartments 110A-n) can be spacious, whereby this configuration can simplify ballasting work. When the OSV 100 navigates in the complex environment of (e.g.) an aquaculture facility, collisions with structures, fish, etc. are almost inevitable. However, according to Figure 1A to Figure 1B The exemplary four-sided tank design of the OSV 100 shown in FIG. 1 can maintain the buoyancy of the OSV 100 even in the event of a leak in the tank. Thus, while the tank 110A may be leaking, the tanks 110B-n remain intact to enable further operation of the OSV 100 and / or positioning the OSV 100 to facilitate removal of the OSV 100 from the aquaculture facility before the OSV 100 sinks.
[0048] As shown and further described, the OSV 100 may include an onboard computer system 180 and an onboard controller 190 (e.g., a microcontroller), whereby the computer system 180 and the controller 190 may operate independently and / or in concert to facilitate operation of the OSV 100 with respect to any of position control / reporting, operation of the thrusters 112A-n, operation of the cameras 120, capture / analysis of images 128A-n, transmission / reception of communications 197A-n / signals 396A-n (as further described), and the like. During operation of the OSV 100, various commands, data, etc. may be utilized, such as position commands / instructions 118A-n that control the position of the OSV 100, thruster instructions 117A-n that control the operation of thrusters 112A-n and the position of the OSV 100, acquired / determined position data 116A-n regarding the position of the OSV 100, lens position data 126A-n regarding the position / focus of the lens 125, images 128A-n and image data 127A-n or a sequence of images 128A-n (e.g., combined to form a video stream) regarding the position / orientation / time, etc. of the images 128A, defect data 129A-n regarding the position / depth / size of the defect 107 in the net 105.
[0049] As described above, the controller 190 may be a microcontroller (e.g., a small computer on a single integrated circuit), whereby use of the microcontroller 190 for one or more tasks of the operation of the OSV 100 relative to the computer system 180 may reduce the electrical demand on the batteries 140A-n, thereby increasing the operating life of the OSV 100 between recharging the batteries 140A-n.
[0050] As shown, various components can be coupled to form a positioning system (see systems 300A-B, FIG. 3A to FIG. 3B ) to position the OSV 100. The positioning system may include one or more tube thrusters 112A-n located in one or more of the pods 110A-n. The thrusters 112A-n may include any suitable motor, such as a brushless DC motor (see Figure 5). The respective thrusters 112A-n may be connected to a network of tunnels / ducts 113A-n and ports 114A-n such that one or more thrusters 112A-n may be operated in unison and / or individually to steer / maneuver the OSV 100. During maneuvering of the OSV 100, the ports 114A-n may be used as fluid inlets and / or fluid outlets based on the respective operation of the thrusters 112A-n. In an embodiment, each thruster 112A-n may be operated in conjunction with the respective ducts 113A-n to generate forward thrust and / or reverse thrust that enables the OSV 100 to move in any desired direction (e.g., omnidirectional) given the configuration / position of the ducts 113A-n / ports 114A-n.
[0051] Temporarily go to Figure 2A , schematic 200A shows a side view of an OSV according to one or more embodiments. Schematic 200A shows an OSV 100 having a first / front cabin 110A, a second / rear cabin 110B, and a center cabin 110E, wherein the OSV 100 is located / floating on the surface of a fluid 210. In an exemplary configuration, a first port 114A may be located on a lower surface of the cabin 110A, wherein the first port 114A is connected to a first propeller 112A via a first conduit 113A, such that the first propeller 112A is configured to inhale fluid via the first port 114A and the first conduit 113A. The first propeller 112A may also be connected to a second port 114B via a second conduit 113B, such that the first propeller 112A may also be configured to discharge fluid via the second port 114B and the second conduit 113B. The thrusters 112A-n may each include various valves 220A-n with adjustable positions (e.g., open, closed, partially open, etc.) to enable fluid to be directed along the respective conduits 113A-n and discharged or drawn from the respective ports 114A-n. Thus, by connecting the respective thrusters 112A-n to a network of conduits 113A-n / ports 114A-n having configurable fluid pathways, operation of the thrusters 112A-n / valves 220A-n enables maneuvering / positioning of the OSV 100. Operation of the thrusters 112A-n / valves 220A-n may be controlled according to thruster instructions 117A-n (e.g., generated by computer system 180 / controller 190) in accordance with position commands / instructions 118A-n (e.g., generated by / received at computer system 180 / controller 190).
[0052] The number and operation of one or more thrusters 112A-n may exceed the desired degrees of freedom (DOF) in the directionality of the OSV 100. Furthermore, by incorporating each thruster 112A-n within a respective pod 110A-n, and the only connections between the thrusters 112A-n and the outer surface of the OSV 100 being respective conduits 113A-n and ports 114A-n, the OSV 100 is less prone to entanglement with aquaculture structures (e.g., net 105) than conventional systems (e.g., including external thrusters). Furthermore, by incorporating two or more thrusters 112A-n on the OSV 100, the failure of one thruster (e.g., thruster 112A) may be accommodated by one or more thrusters (e.g., thrusters 112B-n) remaining operational. In embodiments, the thrusters 112A-n may operate in conjunction with an electronic speed controller (ESC) 212A-n, wherein the ESC 212A-n may be configured to control the operation of one or more thrusters 112A-n that are communicatively coupled to and controlled by a corresponding ESC 212A-n. The operation of the ESC 212A-n may be controlled by, for example, a position command 118A-n. Figure 5 The microcontroller 190 and / or computer system 180 shown in the exemplary configuration 500 presented in FIG.
[0053] The positioning system may also include a position manager 115 (also referred to as a position component manager) configured to control the operation of the thrusters 112A-n to achieve positioning of the OSV 100. The position manager 115 may also be configured to generate position data 116A-n, whereby the position data 116A-n may be utilized to enable determination of defects 107 in the nets 105 / holes 106A-n. For example, the position data 116A-n may be used with lens position data 126A-n generated regarding the position of the camera 120 / lens 125, wherein the corresponding position data 116A-n (e.g., the orientation, attitude, alignment of the OSV 100) and the lens position data 126A-n may be utilized to identify the location / depth of a point of interest (POI) regarding the nets 105 / holes 106A-n. The position manager 115 may be executed by the controller 190 and / or the computer system 180.
[0054] As further shown, one or more cameras 120 may be located on the OSV 100. The camera 120 may include various components of the camera, such as a lens 125, a lens positioning system 130 (e.g., a lens focuser), and an image processor 132 (also referred to as an image processing system), among others. The lens positioning system 130 may be utilized to adjust the position of the lens 125 to facilitate image focus for, for example, inspecting the net 105 within a range of water depths at an aquaculture facility. The lens positioning system 130 may be configured to generate / receive / process lens position data 126A-n regarding the current / expected position of the lens 125. The image processor 132 may be utilized to receive image data 127A-n from the lens 125 (and associated image capture system, such as a charge coupled device (CCD)), and process the image data 127A-n. As further described, the image processor 132 may operate in conjunction with various AI / ML processes 179A-n to enable detection of holes 107A-n and determination of the integrity of the net 105. As further described, the processes 179A-n may include one or more neural network-based damage detection functions to detect irregular shapes / unexpected holes / openings 107A-n in the net 105. In an example scenario of implementation, the location of the one or more holes 106A-n in the net 105 may be determined by measuring the pose / alignment of the OSV 100 based on the position data 116A-n provided by the position manager 115 in combination with the image data 127A-n of the camera 120 / lens 125, whereby the image data 127A-n may include line-of-sight information of the camera 120 / lens 125 relative to the net 105 / defect 107.
[0055] The camera 120 may be any suitable camera, such as an underwater camera. In an embodiment, the camera 120 may be located within a capsule (e.g., capsule 110A) whereby the lens 125 is positionally moved by a lens positioning system 130 within the capsule and an image (e.g., of the net 105) is captured through a window (not shown) of transparent material incorporated into an outer wall / surface of the capsule. In another embodiment, the camera 120 may be externally secured to an outer surface of one or more of the capsules 110A-n via a movable arm / support such that the camera 120 is effectively suspended / supported by the configuration of the capsules 110A-n. Reference Figure 2B Detection of defects 107 in web 105 is further described.
[0056] As shown, precise positioning accuracy of the OSV 100 may be achieved using one or more positioning beacons 177A-n (e.g., ultrasonic positioning beacons) (e.g., triangulation of signals 156A-n transmitted / received by the beacons 177A-n from one or more nodes 198A-n located remotely from the OSV 100, such as nodes 198A-n located around an aquaculture facility). The signals 156A-n may also include global positioning system (GPS) signals to further facilitate the determination of the position of the OSV 100.
[0057] As further shown, the communication system 150 may also be located on the OSV 100, wherein the communication system 150 may include various components to enable communications 197A-n to / from the OSV 100 to a remote system (e.g., the RC controller 160, the remote computing system 165), etc. The communications 197A-n may include images 128A-n, position commands 118A-n, positioning data 116A-n of the OSV 100, position data 126A-n of the lens 125, position data 129A-n of the feature of interest 107, etc., for example, by a remote operator 175 (e.g., see Figure 5 ) to further inspect the integrity of the net 105 / holes 106A-n and further direct the operation of the OSV 100 (e.g., adjust the position of the OSV 100 to inspect the location of damage / potential damage, adjust the position of the camera 120, move the OSV 100 to a specific location, etc.), whereby the communications 197A-n may also include positioning indications 118A-n, etc. generated by the remote operator 175. In an embodiment, the remote operator 175 may be a human entity, while in another embodiment, the remote operator 175 may be a computer system utilizing AI / ML techniques (e.g., similar to the processes 179A-n) configured to investigate / analyze any current / potential damage to the net 105.
[0058] One or more batteries 140A-n may be located on the OSV 100 to power various devices / components located on the OSV 100 (e.g., propellers 112A-n, camera systems 120A-n, computer system 180, controller 190, etc.). The batteries 140A-n may be provided on the OSV 100 to enable the OSV 100 (e.g., see FIG. 3A to FIG. 3B as well as FIG. 4A to FIG. 4B ) balance.
[0059] As previously described, one or more computer systems 180A-n / controllers 190A-n may be located on the OSV 100 to control the operation of the OSV 100. The computer systems 180A-n / controllers 190A-n may be configured to operate one or more thrusters 112A-n / valves 220A-n, the camera lens positioning system 130, the image processor 132, etc. It should be understood that functions involving the controller 190 may be performed by the computer system 180, and vice versa. The various devices of the computer systems 180A-n / controllers 190A-n located on the OSV 100 may be communicatively coupled via the communication network / bus 167.
[0060] The computer systems 180A-n / controllers 190A-n may include processors 182A-n and memories 184A-n, wherein the processors 182A-n may perform various computer executable components, functions, operations, etc. presented herein, such as any component on the OSV 100, the position manager 115, the image processor 132, the process component 178, etc. The memory 184 may be utilized to store various computer executable components, functions, codes, etc., as well as position data 116A-n, position commands 118A-n, thruster commands 117A-n, images 128A-n, lens data 126A-n, image data 127A-n, defect data 129A-n, vector V 1-n , similarity index S 1-n , processes 179A-n (as further described below), etc.
[0061] As further shown, the computer system 180 may include an input / output (I / O) component 186 (e.g., in the communication system 150), wherein the I / O component 186 may be a transceiver configured to be able to send / receive information and data between any components located on the OSV 100 and external to the OSV 100. In an embodiment, the I / O component 186 may be configured to send various communications 197A-n regarding the operation of the OSV 100, position commands 118A-n, images 128A-n, etc., as well as receive position signals 156A-n, etc.
[0062] Figure 2BSchematic diagram 200B of determining anomalies in underwater structures according to one or more embodiments is shown. As previously described, the presence of anomalies in structures (e.g., hole 107 in net 105) may be determined using images 128A-n captured at camera 120. In an example embodiment, given the dimensions of an expected structure such as hole 106A-n (e.g., width x1), where width x2 exceeds width x1, image processor 132 may be configured to determine the presence of potential hole 107 in net 105. Further, by knowing the relationship of width x3 of known hole 106A-n to width x4 of hole 106A-n in camera 120 (e.g., on a CCD in camera 120), combined with the distance of lens 125 relative to camera 120 (e.g., focal length (FL) of lens 125), it is possible to determine object distance OD from camera 120 to potential hole 107. Thus, it is possible to determine both the direction of hole 107 from OSV 100 and the depth at which potential hole 107 is located. The image processor 132 may be configured to supplement the image 128A of the aperture 107 with position data 116A-n, lens data 126A-n, etc., so that the location of the aperture 107 may be readily determined, for example, by current / subsequent inspection of the images 128A-n (e.g., by the remote entity 175).
[0063] In embodiments, the image processor 132 may also be configured to determine any of the viewpoint / field of view / focus (e.g., communicated in the lens data 126A-n) of the camera 120 / lens 125 to enable determination of the location / size of the defect 107 in the web 105. For example, the image processor 132 may utilize the position data 116A-n (e.g., position, alignment, etc.) of the OSV 100, the lens position data 126A-n, etc. to determine the field of view of the image / video 128A-n captured / generated by the camera 120, and further determine the focus / FL of the camera 120 / lens 125, from which the location, depth, etc. of the feature of interest 107 in the web 105 relative to the camera 120 / lens 125 may be determined by the image processor 132. In embodiments, the corresponding position information 116A-n regarding the position / orientation of the OSV 100, the orientation of the camera 120, the orientation / position of the feature of interest 107, etc. may be incorporated into the image 128A-n generated by the image processor 132. As further described, the image processor 132 can utilize processing components 178 / processes 179A-n to determine the presence of a defect 107, for example, by comparing the dimension x2 of the defect 107 to the known dimension / opening x1 of the holes 106A-n, such that in the event that an identified hole in the mesh 105 has a dimension that is greater than the known dimension of the hole 106A, the identified hole can be marked (e.g., in image 128A) as a potential defect 107 for further investigation, where the potential defect 107 can be marked using position data 116A-n, lens position data 126A-n, image data 127A-n, etc.
[0064] Figure 3A and Figure 3B is a schematic diagram showing systems 300A and 300B for further illustrating various components of a positioning system / power distribution including an OSV according to one or more embodiments. Systems 300A and 300B present wiring diagrams of components / devices showing exemplary electrical connections. Figure 3A and Figure 3BAs shown in , the first battery 140A can be used to power various components in the positioning system 300. In addition, one or more real-time kinematic (RTK) devices 330A-n (e.g., RTK offshore devices) can be used to accurately determine and / or control the position of the OSV 100, as well as identify the location of damage to the network 105. One or more RTK devices 330A-n (e.g., used as positioning beacons 177A-n) can utilize RTK Global Positioning System (RTK GPS) positioning technology, which utilizes a combination of GPS signals in conjunction with position signals provided by local base stations (nodes 198A-n), whereby RTK GPS can provide a higher position accuracy than can be achieved using GPS alone. For example, RTK GPS can provide position information accurate to within centimeters.
[0065] As further shown, the location system 300 may also include one or more converters 360A-n as needed to facilitate providing power to the various systems / components / devices included in the OSV 100. For example, converter 360A may be a 12V DC-DC converter for powering the computer system 180A, and converter 360n may be a 5V DC-DC converter for powering the communication system 150, the signal multiplexer (MUX) 370, etc.
[0066] Other batteries 140B-n may be located on the OSV 100 as desired. For example, Figure 3B As shown in FIG. 1 , the propellers 112B-n and the ESCs 212B-n may be powered by a second battery 140B. In this example configuration, the propellers 112B and the ESCs 212B are located in the rear cabin 110B, the propellers 112C and the ESCs 212C are located in the right cabin 110C, and the propellers 112D and the ESCs 212D located in the left cabin 110D may be powered by the battery 140B located in the rear cabin 110B. The batteries 140A-n may be distributed throughout the OSV 100 as needed to ensure the operation of the various components located on the OSV 100, such as power distribution, energy distribution, energy efficiency, etc., and the positional stability of the OSV 100 during operation.
[0067] like Figure 3AAs shown in FIG. 1 , an inertial measurement unit (IMU) 390 may be utilized to measure and report the movement of the OSV 100 in the position data 116A-n, such as acceleration, rotation, velocity, etc. The IMU 390 may be of any suitable configuration, for example, in an exemplary embodiment, the IMU 390 may be a 9-degree-of-freedom inertial measurement unit (9DOF IMU), and may include any of an accelerometer for measuring linear acceleration, a gyroscope for measuring angular rate, a magnetometer for measuring the strength and direction of the earth's magnetic field, a pressure sensor for measuring external pressure, etc. The IMU 390 may be communicatively coupled to the controller 190 / computer system 180, and the controller 190 / computer system 180 may be configured to receive signals 396A-n from the IMU 390 to facilitate positioning / operation of the OSV 100 by the controller 190 / computer system 180.
[0068] Figure 4A and Figure 4B is a schematic diagram illustrating exemplary signaling systems 400A and 400B utilized in an OSV according to one or more implementations. Figure 4A shows exemplary signal connections for devices / components that may be located in the front compartment 110A, Figure 4B Exemplary signal connections for devices / components that may be located in any of the rear compartment 110B, the right compartment 110C, and / or the left compartment 110D are shown. The values presented are for exemplary purposes, and any appropriate values may be utilized. During operation of the OSV 100, pulse wave modulation (PWM) signaling may be utilized, such as a 100 Hz PWM. Any suitable data transmission rate across the systems 400A and 400B may be utilized, such as, for example, a 1M baud universal asynchronous receiver / transmitter (UART). In addition, other data transmission technologies are also applicable, such as if high-speed data transmission is a priority, SPI with full-duplex communication and high data rates may be utilized, however, if power consumption / simplicity is required, I2C half-duplex communication may be utilized.
[0069] Figure 5 A schematic diagram of an exemplary electrical system 500 for switching operation control of an OSV between a local controller and a remote controller according to one or more embodiments is shown, the electrical system 500 including a radio control (RC) controller according to one or more embodiments and a signal switching component for engine operation. The system 500 may include a controller 190 configured to control the operation of one or more thrusters 112-n. In an exemplary configuration, the controller 190 may be an ARDUINO TMNano microcontroller. The controller 190 may receive a plurality of inputs, such as communications 197A-n between the controller 190 and the workstation 530, whereby the workstation 530 may operate as a slave computer and run automated control. The workstation 530 may be communicatively coupled to the controller 190 by any suitable means (e.g., by connecting via a USB port).
[0070] The controller 190 may also be coupled to the receiver 186, wherein the controller 190 and the receiver 186 may be coupled to the motors 112A-n / ESCs 212A-n via the MUX 370 (e.g., POLO L1 4 channel MUX). As further shown, the system 500 may be powered by the batteries 140A-n. The system 500 may include other corresponding components / circuits as shown in the exemplary configuration, such as M1 (CH1), SEL (CH5), PIN D9 (S1), etc.
[0071] In exemplary operation, while the position commands 118A-n, etc. may be generated by the onboard controller 190, the receiver 186 may be configured to receive the positioning signals 118A-n from the handheld controller 520 as well as from the computer 530. Thus, while the OSV 100 may operate autonomously based on the position signals / commands generated by the onboard controller 190 (e.g., in communications 197A-n), remote control / operation of the OSV 100 may be implemented by a remote device (e.g., the handheld controller 520). Thus, according to Figure 5 In the exemplary configuration shown in FIG. 1 , the MUX 370 may be operable to switch control between the onboard controller 190 and instructions 118A-n received from a remote controller (eg, a handheld controller 520 ) to ensure safe and controlled operation of the OSV 100 .
[0072] 3. AI / ML Considerations
[0073] As described above, various embodiments presented herein may utilize various AI / ML models / techniques / methods / architectures (e.g., process component 178 implementing processes 179A-n). The AI / ML techniques and methods may be configured to make information determinations, inferences, predictions, etc. related to the operation of the OSV 100 and the detection of holes 107 in the net 105. The process component 178 and processes 179A-n may be implemented by any component included in the OSV 100. For example, the image processor 132 may be configured to utilize processes 179A-n to determine the presence of an unwanted hole 107. The identification of the hole 107 may be facilitated by an automatic classifier system and / or process.
[0074] Processes 179A-n may include AI, ML, and reasoning methods / techniques that employ probabilistic and / or statistical-based analysis to predict or infer actions that an entity wishes to automatically perform in order to perform various aspects thereof, such as determining the presence of hole 107 (rather than holes 106A-n forming net 105).
[0075] As used herein, the terms "predict," "infer," "reason," "determine," and the like generally refer to the process of reasoning or inferring the state of a system, environment, and / or user from a set of observations captured through events and / or data. For example, inference can be employed to identify a particular context or action, or inference can generate a probability distribution over states. Inference can be probabilistic, that is, a probability distribution over states of interest is calculated based on a consideration of data and events. Inference can also refer to methods for composing higher-level events from a set of events and / or data. Such inference results in configuring new events or actions from a set of observed events and / or stored event data, whether or not the events are closely related in time and whether the events and data come from one or several event and data sources.
[0076] A classifier is a function that maps an input attribute vector x = (x1, x2, x3, x4, xn) to a class label class(x). A classifier can also output the confidence that the input belongs to a class, i.e., f(x) = confidence(class(x)). This classification can use probabilistic and / or statistical analysis to predict or infer the action that the user wants to perform automatically (e.g., identifying hole 107, etc.).
[0077] A support vector machine (SVM) is an example of a classifier that can be used. An SVM operates by finding a hypersurface in the space of possible inputs that optimally separates triggering input events from non-triggering events. Intuitively, this allows the classification to be correct for test data that is close to, but not identical to, the training data. Other directed and non-directed model classification methods include, for example, Naive Bayes ( Bayes), Bayesian network, decision tree, neural network, fuzzy logic model and probabilistic classification models that provide different independent modes. The classification used in this article includes statistical regression for developing priority models.
[0078] It will be readily appreciated from this specification that various embodiments may employ classifiers that are explicitly trained (e.g., through general training data) as well as implicitly trained (e.g., through previously identified holes 107A-n, etc.). For example, an SVM is configured through a learning or training phase within a classifier builder and feature selection module. Thus, the classifier can be used to automatically learn and perform a number of functions, including but not limited to determining that a hole 107 may be present according to predetermined criteria, etc.
[0079] During training, previous decisions, previous observations, determinations, etc. may be applied to the processes 179A-n so that the processes 179A-n are trained on the likelihood of the presence of a hole 107 in the net 105. Thus, as new information is provided (e.g., subsequent processing of potential holes 107A-n, subsequent inspections of potential holes 107A-n (e.g., by human divers)), the processes 179A-n may be retrained accordingly.
[0080] It will be understood that the various processes 179A-n and operations presented herein are merely examples of various AI and ML operations and methods, and any suitable techniques may be utilized in accordance with the various embodiments presented herein. In an example embodiment, the process component 178 / process 179A-n may be applied to any of the potential wells 107A-n. Among them, process components 178 / processes 179A-n may include vector components to apply any suitable vector technology, such as, in a non-limiting list, bag of words (BOW) text vectors, Euclidean distance, cosine similarity, vector representations that capture word / token frequencies (e.g., common words across previous / current / future knowledge) through term frequency-inverse document frequency (tf-idf), neural network embedding layer vector representations of words / categories (e.g., common words with different tenses), transformer neural networks, bidirectional and autoregressive transformer (BART) model architecture, transformer-based bidirectional encoder representation (BERT) model, long short-term memory network (LSTM) operation, sentence state LSTM (S-LSTM), deep learning algorithms, sequence neural networks, sequence neural networks capable of maintaining persistent information, recurrent neural networks (RNN), convolutional neural networks (CNN), neural networks, capsule networks, machine learning algorithms, natural language processing (NLP) technology, sentiment analysis, bidirectional LSTM (BiLSTM), stacked BiLSTM, regular pattern expression matching, etc. Language models, LSTMs, Barts, etc. can be formed using extremely complex neural networks, for example, comprising billions of weighted parameters.
[0081] During the application of process 179A-n, the vector representation V 1-nThe method may be applied to holes of known sizes (e.g., holes 106A-n) and potential anomalies (e.g., holes 107A-n) such that vector similarity operations (e.g., vector clustering / distance) may be applied to determine the likelihood of the presence of holes 107A-n in the mesh 105. For example, the similarity / difference between the respective information may be determined based on a threshold reflecting the proximity of a first vector generated from information related to holes 106A-n of known sizes to a second vector generated from information related to potential holes 107A-n (e.g., by a similarity index S 1-n ), thereby being able to determine that potential holes 107A-n are of interest and should be investigated, for example, by vector quantization of known holes 106A-n and potential holes 107A-n.
[0082] It will be understood that while any of the image processor 132, location manager 115, process component 178, etc. may be used as separate components / implemented independently, the various components and functions may be combined into a single component, such as the image processor 132 operating with one or more of the location manager 115, process component 178, etc. as a single, high-level component.
[0083] 4. Exemplary Methods of Operating an OSV
[0084] Figure 6 An exemplary method 600 for inspecting a subsea structure using an OSV is shown in accordance with one or more implementations.
[0085] At 610, operation of an OSV (e.g., OSV 100) may be initiated (e.g., by position manager 115). As previously described, the OSV may include a platform of interconnected buoyancy chambers (e.g., chambers 110A-n) on which a camera system (e.g., camera 120) configured to capture images of underwater structures (e.g., net 105) is located. Each chamber may be configured to include a set of position thrusters (e.g., thrusters 112A-n) connected to a series of pipes and ports (e.g., pipes 113A-n and ports 114A-n) to enable navigation of the OSV by fluid intake / exhaust. A position component (e.g., position manager 115) may be configured to control the operation of the thrusters to facilitate positioning of the OSV, for example, according to corresponding position commands (e.g., position commands 118A-n). One or more microcontrollers (e.g., microcontroller 190) and a computer system (e.g., computer system 180) may be used to control the operation of the OSV. The location of the OSV may be determined based on an onboard GPS system and location data received from nearby nodes (e.g., nodes 198A-n) at one or more location beacons (e.g., location beacons 177A-n) and generated on the OSV (e.g., by IMU 390).
[0086] At 620 , the integrity of the structure (eg, web 105 ) may be monitored by the OSV (eg, via image processor 132 ) (eg, based on images captured by an onboard camera (eg, images 128A-n)).
[0087] At 630, an anomaly in the structure may be detected (e.g., by image processor 132), whereby the anomaly may be a hole (e.g., hole 107) having at least one dimension that is different from an expected associated / defined dimension. Figure 2A ), one or more AI and ML processes (e.g., processes 179A-n) can be used to analyze images generated by the camera to determine the location of the anomaly.
[0088] At 640 , the position of the OSV may be determined (eg, by image processor 132 using position data 116A-n), as well as the position / viewpoint of the camera, the position of the camera lens (eg, lens 125 ), and the like.
[0089] At 650 , the location of the anomaly may be determined (eg, by the image processor 132 ) based on the determined position data of the OSV, camera, camera lens, etc.
[0090] At 660, the anomaly may be reported (eg, by image processor 132), whereby the image of the anomaly may be annotated with the determined anomaly location (eg, from defect data 129A-n). Reporting of the anomaly enables, for example, holes in the mesh to be identified and subsequently repaired.
[0091] Figure 7 The construction and operation of an OSV according to one embodiment to inspect a structure is illustrated by flowchart 700. At 710, an OSV (e.g., OSV 100) may be utilized, wherein the OSV includes two or more buoyancy tanks (tanks 110A-n) configured to support the OSV on a surface of a body of water (e.g., surface 210). At 720, the OSV may also include a thruster (e.g., thruster 112A) configured to navigate the OSV according to a location. At 730, the OSV may also include a camera (e.g., camera 120) located on the OSV, wherein the orientation of the camera is adjustable.
[0092] Figure 8 An exemplary computer-implemented method for inspecting a structure utilizing an OSV, according to an embodiment, is illustrated by flowchart 800 .
[0093] At 810, the computer-implemented method 800 may include receiving, by a device including at least one processor (e.g., an image processor), an image (e.g., images 128A-n) of a structure (e.g., net 105), wherein the image is received from a camera (e.g., camera 120) located on an OSV (e.g., OSV 100) configured to operate at a surface of a fluid (e.g., surface 210). At 820, the computer-implemented method 800 may also include processing, by the device, the image. At 830, the computer-implemented method 800 may include determining, by the device, the integrity of the structure (e.g., the presence of hole 107) based on a result of the processing.
[0094] Fig. 9 An exemplary computer program product for inspecting a structure utilizing an OSV according to an embodiment is illustrated by flowchart 900 .
[0095] At 910, flowchart 900 may include a computer program product stored on a non-transitory computer readable medium and including machine executable instructions, wherein the computer readable medium is located on an OSV (e.g., OSV 100), and wherein, in response to the machine executable instructions being executed, the OSV is caused to perform operations, the operations including: generating one or more images (e.g., images 128A-n) of a net (e.g., net 105), wherein the net is located in an aquaculture facility, and the one or more images are generated by a camera (e.g., camera 120) located within a first buoyancy compartment (e.g., compartment 110A) forming the OSV. At 920, flowchart 900 may also include examining the one or more images to determine if an anomaly (e.g., hole 107) is present in the net. At 930, flowchart 900 may also include, in response to determining that an anomaly exists, identifying a location of the anomaly based on at least one of a location of the OSV (e.g., in the location data 116A-n), an orientation of the OSV, a field of view of the camera (e.g., in the image data 127A-n), and a location of the lens in the camera (e.g., in the lens location data 126A-n). At 940, flowchart 900 may also include generating an image with the anomaly identified on the image in conjunction with the location of the anomaly (e.g., in the defect data 129A-n).
[0096] 5. Exemplary Applications and Uses
[0097] Next go to Fig.10 and Fig.11 , provides a reference for the combination of Figures 1A to 9 A detailed description of additional context for one or more embodiments described.
[0098] In order to provide additional context for the various embodiments described herein, Fig.10The following discussion is intended to provide a brief, general description of a suitable computing environment 1000 in which the various embodiments described herein may be implemented. Although the above embodiments are described in the general context of computer-executable instructions that may be executed on one or more computers, those skilled in the art will recognize that these embodiments may also be implemented in conjunction with other program modules, or as a combination of hardware and software.
[0099] Typically, program modules include routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. In addition, those skilled in the art will appreciate that the method can be implemented with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, IoT devices, distributed computing systems, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronic devices, etc., each of which can be operably connected to one or more associated devices.
[0100] The embodiments shown herein may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0101] Computing devices typically include various media, and computing devices may include computer-readable storage media, machine-readable storage media, and / or communication media, as described below, the two terms used herein are different from each other. Computer-readable storage media or machine-readable storage media can be any available storage media that can be accessed by a computer, and include volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, computer-readable storage media or machine-readable storage media can be implemented in conjunction with any method or technology for storing information such as computer-readable instructions or machine-readable instructions, program modules, structured data, or unstructured data.
[0102] Computer-readable storage media may include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD), Blu-ray disk (BD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage devices or other magnetic storage devices, solid-state drives or other solid-state storage devices, or other tangible and / or non-transitory media that can be used to store the desired information. In this regard, the terms "tangible" or "non-transitory" as applied to storage, memory, or computer-readable media herein should be understood to exclude only propagating transient signals per se as a modifier, and do not disclaim all standard storage, memory, or computer-readable media that are not merely propagating transient signals per se.
[0103] Computer-readable storage media may be accessed by one or more local or remote computing devices, eg, through access requests, queries, or other data retrieval protocols, for various operations related to the information stored by the media.
[0104] Communication media typically embodies computer readable instructions, data structures, program modules, or other structured or unstructured data in a data signal (such as a modulated data signal), such as a carrier wave or other transport mechanism, and includes any information transfer or transmission media. The term "modulated data signal" or signal refers to a signal that has one or more of its characteristics set or changed in a manner that encodes information in one or more signals. By way of example, and not limitation, communication media include wired media such as a wired network or direct wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
[0105] Reference again Fig.10 , an exemplary environment 1000 for implementing various embodiments of aspects described herein includes a computer 1002, which includes a processing unit 1004, a system memory 1006, and a system bus 1008. The system bus 1008 couples system components including, but not limited to, the system memory 1006 to the processing unit 1004. The processing unit 1004 can be any of a variety of commercially available processors and can include a cache memory. Dual microprocessors and other multi-processor architectures can also be used as the processing unit 1004.
[0106] The system bus 1008 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 1006 includes ROM 1010 and RAM 1012. A basic input / output system (BIOS) containing the basic routines that help transfer information between elements within the computer 1002, such as during startup, may be stored in a nonvolatile memory such as ROM, an erasable programmable read-only memory (EPROM), or an EEPROM. RAM 1012 may also include high-speed RAM such as static RAM for caching data.
[0107] The computer 1002 also includes an internal hard disk drive (HDD) 1014 (e.g., EIDE, SATA), one or more external storage devices 1016 (e.g., a magnetic floppy disk drive (FDD) 1016, a memory stick or flash drive reader, a memory card reader, etc.), and an optical drive 1020 (e.g., which can read or write from a CD-ROM disk, a DVD, a BD, etc.). Although the internal HDD 1014 is shown as being located within the computer 1002, the internal HDD 1014 can also be configured for external use in a suitable chassis (not shown). In addition, although not shown in the environment 1000, a solid-state drive (SSD) can be used in addition to the HDD 1014, or a solid-state drive (SSD) can be used instead of the HDD 1014. The HDD 1014, the external storage device 1016, and the optical drive 1022 can be connected to the system bus 1008 via a HDD interface 1024, an external storage interface 1026, and an optical drive interface 1028, respectively. The interface 1024 for external drive implementations may include at least one or both of Universal Serial Bus (USB) and Institute of Electrical and Electronics Engineers (IEEE) 1394 interface technologies. Other external drive connection technologies are also contemplated by the embodiments described herein.
[0108] The drives and their associated computer-readable storage media provide non-volatile storage of data, data structures, computer-executable instructions, etc. For the computer 1002, the drives and storage media accommodate the storage of any data in an appropriate digital format. Although the above description of computer-readable storage media relates to various types of storage devices, it should be understood by those skilled in the art that other types of computer-readable storage media (whether currently existing or developed in the future) may also be used in the exemplary operating environment, and further, any such storage media may contain computer-executable instructions for performing the methods described herein.
[0109] A number of program modules may be stored in the drives and RAM 1012, including an operating system 1030, one or more application programs 1032, other program modules 1034, and program data 1036. All or portions of the operating system, applications, modules, and / or data may also be cached in RAM 1012. The systems and methods described herein may be implemented using various commercially available operating systems or combinations of operating systems.
[0110] Computer 1002 may optionally include emulation technology. For example, a hypervisor (not shown) or other intermediary may emulate a hardware environment for operating system 1030, and the emulated hardware may optionally communicate with the operating system 1030. Fig.10 1002. In this embodiment, the operating system 1030 may include a virtual machine (VM) in a plurality of VMs residing at the computer 1002. In addition, the operating system 1030 may provide an operating environment such as a Java operating environment or a .NET framework for the application 1032. The operating environment is a consistent execution environment that allows the application 1032 to run on any operating system that includes the operating environment. Similarly, the operating system 1030 may support containers, and the application 1032 may be in the form of a container, where the container is a lightweight, independent, executable software package that includes, for example, code for the application, runtime, system tools, system databases, and settings.
[0111] In addition, the computer 1002 may include a security module such as a trusted processing module (TPM). For example, when using a TPM, a boot component may hash the next boot component in sequence and wait for the result to match a security value before loading the next boot component. This process may occur at any layer in the code execution stack of the computer 1002, for example, applied at the application execution level or the operating system (OS) kernel level, thereby achieving security at any code execution level.
[0112] A user may enter commands and information into the computer 1002 through one or more wired / wireless input devices such as a keyboard 1038, a touch screen 1040, and a pointing device such as a mouse 1042. Other input devices (not shown) may include a microphone, an infrared (IR) remote control, a radio frequency (RF) remote control, or other remote control, a joystick, a virtual reality controller and / or a virtual reality headset, a game pad, a stylus, an image input device (e.g., a camera), a gesture sensor input device, a visual motion sensor input device. Emotion or facial detection devices, biometric input devices (e.g., a fingerprint or iris scanner, etc.). These and other input devices are typically connected to the processing unit 1004 through an input device interface 1044, which may be coupled to the system bus 1008, but may be connected through other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR port, a port, or the like.
[0113] A monitor 1046 or other type of display device may also be connected to the system bus 1008 via an interface, such as a video adapter 1048. In addition to the monitor 1046, computers typically include other peripheral output devices (not shown), such as speakers, printers, and the like.
[0114] The computer 1002 can operate in a network environment, logically connected to one or more remote computers, such as a remote computer 1050, via wired and / or wireless communications. The remote computer 1050 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other public network node, and typically includes many or all of the elements described relative to the computer 1002, although only a memory / storage device 1052 is shown for purposes of simplicity. The logical connections described include wired / wireless connections to a local area network (LAN) 1054 and / or a larger network, such as a wide area network (WAN) 1056. Such LAN and WAN networking environments are common in offices and companies, and facilitate enterprise-wide computer networks (such as intranets), all of which can be connected to a global communications network (e.g., the Internet).
[0115] When used in a LAN networking environment, the computer 1002 can be connected to a local network 1054 through a wired and / or wireless communication network interface or adapter 1058. The adapter 1058 can facilitate wired or wireless communication with the LAN 1054, which can also include a wireless access point (AP) disposed therein to communicate with the adapter 1058 wirelessly.
[0116] When used in a WAN networking environment, the computer 1002 may include a modem 1060 or may be connected by other means to a communication server on the WAN 1056 to establish communications over the WAN 1056, such as through the Internet. The modem 1060 may be internal or external and may be a wired or wireless device that may be connected to the system bus 1008 via the input device interface 1044. In a networked environment, program modules described relative to the computer 1002 or portions thereof may be stored in the remote memory / storage device 1052. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0117] When used in a LAN or WAN networking environment, the computer 1002 can access a cloud storage system or other network-based storage system in addition to or in place of the external storage device 1016 as described above. Typically, the connection between the computer 1002 and the cloud storage system can be established over the LAN 1054 or WAN 1056, for example, through an adapter 1058 or a modem 1060, respectively. After the computer 1002 is connected to the associated cloud storage system, the external storage interface 1026 can manage the storage provided by the cloud storage system like other types of external storage with the assistance of the adapter 1058 and / or the modem 1060. For example, the external storage interface 1026 can be configured to provide access to cloud storage sources as if those sources were physically connected to the computer 1002.
[0118] The computer 1002 may be operable to communicate with any wireless device or entity operable to be arranged in wireless communication, such as printers, scanners, desktop and / or portable computers, portable data assistants, communication satellites, any device or location associated with a wirelessly detectable tag (e.g., an information kiosk, a news stand, a store shelf, etc.), and telephones. This may include Wireless Fidelity (Wi-Fi) and Wireless technology. Thus, the communication can be a predefined structure like a conventional network, or simply an ad hoc communication between at least two devices.
[0119] The above description includes non-limiting examples of various embodiments. Of course, for the purpose of describing the disclosed subject matter, it is not possible to describe every possible combination of components or methods, and those skilled in the art will recognize that further combinations and permutations of various embodiments are possible. The disclosed subject matter is intended to include all such changes, modifications and variations that fall within the spirit and scope of the appended claims.
[0120] Reference now Fig.1111. The illustrative cloud computing environment 1100 is described with details of one or more elements shown in FIG. Fig.11 1 is a schematic block diagram of a computing environment 1100 with which the disclosed subject matter can interact. The system 1100 includes one or more remote components 1110. The remote components 1110 can be hardware and / or software (e.g., threads, processes, computing devices). In some embodiments, the remote components 1110 can be distributed computer systems that are connected to local autoscaling components and / or programs that use resources of the distributed computer systems through a communication framework 1140. The communication framework 1140 can include wired network devices, wireless network devices, mobile devices, wearable devices, wireless access network devices, gateway devices, femtocell devices, servers, etc.
[0121] The system 1100 also includes one or more local components 1120. The local components 1120 can be hardware and / or software (e.g., threads, processes, computing devices). In some embodiments, the local components 1120 can include autoscaling components and / or programs that communicate / use remote resources 1110 and 1120 connected to the remotely located distributed computing system through the communication framework 1140, etc.
[0122] One possible communication between the remote component 1110 and the local component 1120 may be in the form of data packets suitable for transmission between two or more computer processes. Another possible communication between the remote component 1110 and the local component 1120 may be in the form of circuit-switched data suitable for transmission between two or more computer processes in a radio time slot. The system 1100 includes a communication framework 1140 that can be used to facilitate communication between the remote component 1110 and the local component 1120, and may include an air interface, such as the Uu interface of a UMTS network, through a long-term evolution (LTE) network, etc. The remote component 1110 may be operably connected to one or more remote data stores 1140 that can be used to store information on the remote component 1110 side of the communication framework 1150, such as a hard drive, a solid-state drive, a SIM card, a device memory, etc. Similarly, the local component 1120 may be operably connected to one or more local data stores (libraries) 1130 that can be used to store information on the local component 1120 side of the communication framework 1140.
[0123] With respect to the various functions performed by the components, devices, circuits, systems, etc. described above, unless otherwise indicated, the terms used to describe such components (including references to "means") are intended to also include any structure (e.g., functional equivalent) that performs the specified functions of the described components, even if not structurally equivalent to the disclosed structures. In addition, although a particular feature of the disclosed subject matter may be disclosed for only one of several implementations, that feature may be combined with one or more other features of other implementations according to the needs and advantages of any given or particular application.
[0124] As used herein, the terms "exemplary" and / or "illustrative" are intended to mean used as examples, instances, or illustrations. For the avoidance of doubt, the subject matter disclosed herein is not limited to these examples. In addition, any aspect or design described herein as "exemplary" and / or "illustrative" is not necessarily to be construed as better or advantageous than other aspects or designs, nor is it meant to exclude equivalent structures and techniques known to those skilled in the art. In addition, the terms "including," "having," "containing," and other similar words used in the detailed description or claims are intended to be inclusive - similar to "comprising" as an open transition word - without excluding any additional or other elements.
[0125] As used herein, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." For example, the phrase "A or B" is intended to include instances A, B, and both instances A and B. Furthermore, the articles "a" and "an" as used in this application and the appended claims should generally be construed to mean "one or more" unless otherwise specified or clear from context to be directed to a singular form.
[0126] The term "set" as used herein excludes an empty set, i.e., a set in which there are no elements. Thus, a "set" in the present disclosure includes one or more elements or entities. Likewise, the term "group" as used herein refers to a set of one or more entities.
[0127] Unless the context clearly indicates otherwise, the terms "first", "second", "third", etc. used in the claims are for clarity purposes only and do not indicate or imply any temporal order. For example, "a first determination", "a second determination", and "a third determination" do not indicate or imply that the first determination is performed before the second determination, or vice versa, etc.
[0128] As used in the present disclosure, in some embodiments, the terms "component", "system", etc. are intended to mean or include a computer-related entity or an entity related to an operating device having one or more specific functions, where the entity can be hardware, a combination of hardware and software, software, or software in execution. As an example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable module, a thread of execution, a computer-executable instruction, a program, and / or a computer. As an example and not limitation, both an application running on a server and a server can be a component.
[0129] One or more components may reside in a process and / or a thread of execution, and the components may be located on a computer and / or distributed between two or more computers. In addition, these components may be executed from various computer-readable media having various data structures stored thereon. Components may communicate via local and / or remote processes, such as according to signals having one or more data packets (e.g., data of a component interacting with another component in a local system, a distributed system, and / or data of another component interacting with other systems across a network (such as the Internet) via a signal). As another example, a component may be a device having a specific function provided by a mechanical component operated by an electrical or electronic circuit, the device being operated by a software application or firmware application executed by a processor, wherein the processor may be inside or outside the device, and executes at least a portion of the software application or firmware application. As yet another example, a component may be a device providing a specific function by an electronic component without a mechanical component, wherein the electronic component may include a processor to execute software or firmware that at least partially assigns the function of the electronic component. Although various components have been described as separate components, it will be understood that, without departing from the exemplary embodiments, multiple components may be implemented as a single component, or a single component may be implemented as multiple components.
[0130] The term "facilitate" is used herein in the context of a system, device, or component "facilitating" one or more actions or operations, taking into account the nature of complex computing environments in which multiple components and / or multiple devices may participate in certain computing operations. Non-limiting examples of actions that may or may not involve multiple components and / or multiple devices include sending or receiving data, establishing a connection between devices, determining intermediate results of obtaining a result, etc. In this regard, a computing device or component may facilitate an operation by playing any portion when the operation is completed. Therefore, when the operation of a component is described herein, it should be understood that, where the component helps describe the operation, the operation may optionally be completed through the cooperation of one or more other computing devices or components (such as, but not limited to, sensors, antennas, audio and / or video output devices, other devices, etc.).
[0131] In addition, various embodiments can be implemented as methods, devices or products using standard programming and / or engineering techniques to produce software, firmware, hardware or any combination thereof to control a computer to implement the disclosed subject matter. The term "product" as used herein is intended to include a computer program that can be accessed from any computer-readable (or machine-readable) device or computer-readable (or machine-readable) storage / communication medium. For example, a computer-readable storage medium can include, but is not limited to, a magnetic storage device (e.g., a hard disk, a floppy disk, a magnetic strip), an optical disk (e.g., a compact disk (CD), a digital versatile disk (DVD)), a smart card, and a flash memory device (e.g., a card, a stick, a flash drive). Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope or spirit of the various embodiments.
[0132] In addition, terms such as "mobile device device", "mobile station", "mobile", "user station", "access terminal", "terminal", "handset", "communication device", "mobile device" (and / or terms representing similar technologies) may refer to wireless devices utilized by users or mobile devices of wireless communication services to receive or transmit data, control, voice, video, sound, games, or substantially any data stream or signaling stream. With reference to the relevant drawings, the above terms may be used interchangeably herein. Similarly, the terms "access point (AP)", "base station (BS)", "BS transceiver", "BS device", "cell site", "cell site device", "gNodeB (gNB)", "evolved Node B (eNode B, eNB)", "home node B (HNB)", etc. refer to wireless network components or devices that send and / or receive data, control, voice, video, sound, games, or substantially any data stream or signaling stream from one or more user stations. Data streams and signaling streams may be packetized or frame-based streams.
[0133] Furthermore, the terms "device," "communication device," "mobile device," "user," "client entity," "consumer," "entity," and the like are used interchangeably throughout the text unless the context warrants a specific distinction between the terms. It should be understood that such terms may refer to a human entity or to an automated component supported by artificial intelligence (e.g., the ability to reason based on complex mathematical formulas) that may provide simulated vision, voice recognition, and the like.
[0134] It should be noted that although various aspects and embodiments are described herein in the context of 5G or other next generation networks, the disclosed aspects are not limited to 5G implementations and can be applied to other network next generation implementations, such as the sixth generation (6G) or other wireless systems. In this regard, the aspects or features of the disclosed embodiments can be utilized in substantially any wireless communication technology. Such wireless communication technologies may include Universal Mobile Telecommunications System (UMTS), Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband CDMA (WCMDA), CDMA2000, Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Multi-Carrier CDMA (MC-CDMA), Single Carrier CDMA (SC-CDMA), Single Carrier FDMA (SC-FDMA). Orthogonal frequency division multiplexing (OFDM), discrete Fourier transform spread OFDM (DFT-spread OFDM), filter bank based multi-carrier (FBMC), zero tail DFT spread OFDM (ZT DFT-s-OFDM), generalized frequency division multiplexing (GFDM), fixed mobile convergence (FMC), universal fixed mobile convergence (UFMC), unique word OFDM (UW-OFDM), unique word DFT spread OFDM (UW DFT-Spread-OFDM), cyclic prefix OFDM (CP-OFDM), resource block filtered OFDM, wireless fidelity (Wi-Fi), world-wide interoperability for microwave access (WiMAX), wireless local area network (WLAN), general packet radio service (GPRS), enhanced GPRS, third generation partnership project (3GPP), long term evolution (LTE), 5G, third generation partnership project 2 (3GPP2), ultra mobile broadband (UMB), high speed packet access (HSPA), evolved high speed packet access (HSPA+), high speed downlink packet access (HSDPA), high speed uplink packet access (HSUPA), Zigbee, or another Institute of Electrical and Electronics Engineers (IEEE) 802.12 technology.
[0135] It should be understood that when an element is referred to as being "coupled" to another element, this may describe one or more different types of coupling, including but not limited to a chemical coupling, a communicative coupling, an electrical coupling, an electromagnetic coupling, an operational coupling, an optical coupling, a physical coupling, a thermal coupling, and / or another type of coupling. Likewise, it should be understood that when an element is referred to as being "connected" to another element, this may describe one or more different types of coupling, including but not limited to an electrical coupling, an electromagnetic coupling, an operational coupling, an optical coupling, a physical coupling, a thermal coupling, and / or another type of coupling.
[0136] The description of the illustrated embodiments of the present disclosure provided herein (including the contents described in the abstract) is not intended to be exhaustive or to limit the disclosed embodiments to the precise form disclosed. Although specific embodiments and examples are described herein for illustrative purposes, various modifications may be considered within the scope of such embodiments and examples as will be appreciated by those skilled in the art. In this regard, although the subject matter has been described herein in conjunction with various embodiments and corresponding drawings, where applicable, it should be understood that other similar embodiments may be used, or the disclosed embodiments may be modified and added to perform the same, similar, alternative or alternative functions of the disclosed subject matter without departing from the present invention. Therefore, the disclosed subject matter should not be limited to any single embodiment described herein, but should be interpreted in breadth and scope according to the appended claims.
Claims
1. An omnidirectional surface vehicle (OSV), comprising: two or more buoyancy compartments configured to provide support on a surface of a body of water; a thruster configured to navigate the OSV to a position; as well as A camera, wherein the orientation of the camera is adjustable.
2. The OSV according to claim 1, wherein: The two or more buoyancy chambers each include a hollow spherical structure formed by two separable halves, wherein one or more buoyancy chambers are adapted to accommodate corresponding one or more components to be transported.
3. The OSV of claim 1, wherein: The impeller is connected to the conduit channel, and operation of the impeller causes fluid to be drawn into or discharged from the conduit channel.
4. The OSV of claim 1, further comprising: Image processor, configured as: receiving image data from the camera; processing the image data; and The integrity of the structure is determined based on the image data.
5. The OSV according to claim 4, wherein: The structure is a net in an aquaculture facility.
6. The OSV of claim 4, wherein: The camera also includes a lens focuser configured to adjust the focus of the camera as part of enabling determination of the integrity of the structure.
7. The OSV of claim 4, further comprising: Location Manager, configured as: determining at least one of a position of the OSV and an alignment of the OSV; generating and transmitting first position data including said at least one of said position of said OSV and said alignment of said OSV, Wherein, the image processor is further configured to: receiving the first position data; and Based on the first position data, at least one of a location and a size of a fault in the integrity of the structure is determined.
8. The OSV according to claim 7, wherein: The location manager is also configured to: receiving second location data and / or third location data, wherein the second location data is received from a first device remote from the OSV and the third location data is received from a second device located on the OSV; and At least one of the position of the OSV and the alignment of the OSV is determined based on at least one of the second position data and the third position data.
9. The OSV of claim 1, wherein: The OSV includes five buoyancy tanks, and the arrangement of the five buoyancy tanks includes: a central buoyancy tank, and four buoyancy tanks other than the central buoyancy tank are attached to the central buoyancy tank, wherein the four buoyancy tanks are arranged in a diamond pattern around the central buoyancy tank, and the arrangement of the four buoyancy tanks includes a front buoyancy tank, a rear buoyancy tank, a right buoyancy tank positioned between the front buoyancy tank and the rear buoyancy tank, and a left buoyancy tank positioned between the front buoyancy tank and the rear buoyancy tank, and wherein the right buoyancy tank is located opposite the left buoyancy tank.
10. The OSV of claim 9, wherein: The camera is located at the front buoyancy tank.
11. The OSV of claim 1, wherein: The thruster is a first thruster, and the OSV further comprises: A second thruster is configured to operate in conjunction with the first thruster to positionally navigate the OSV, wherein navigation of the OSV at the surface of the body of water can be omnidirectional.
12. A computer-implemented method comprising: receiving, by a device including at least one processor, an image of a structure, wherein the image is received from a camera located on an omnidirectional surface vehicle (OSV) configured to operate at a surface of a fluid; processing the image by the device; and The integrity of the structure is determined by the device based on a result of the processing.
13. The computer-implemented method of claim 12, wherein: The OSV includes a group of buoyancy tanks combined together to form a floating platform, on which the camera and at least one thruster are arranged, and the at least one thruster is configured to position the OSV at the surface of the fluid, wherein the group of buoyancy tanks includes a central tank, a front tank attached to the central tank, a rear tank attached to the central tank and arranged opposite to the front tank, a right tank attached to the central tank located between the front tank and the rear tank, and a left tank attached to the central tank located between the front tank and the rear tank, and wherein the left tank is located opposite the right tank.
14. The computer-implemented method of claim 12, wherein: The structure is a net located at an aquaculture facility, and the net is located below the surface of the fluid.
15. The computer-implemented method of claim 12, further comprising: determining, by the device, at least one of an alignment of the OSV and a position of the OSV; determining, by the device, a viewpoint of a camera located on the OSV based on the at least one of the alignment of the OSV and the position of the OSV; determining, by the device, a focus of the camera, wherein a feature of interest as part of the structure is located at the focus of the camera; as well as A position of the feature of interest relative to the camera is determined, by the device, based on at least one of the viewpoint of the camera and the focus of the camera.
16. The computer-implemented method of claim 15, further comprising: A size of the feature of interest is determined by the apparatus, wherein the feature of interest is a first hole in the mesh, wherein the size of the feature of interest is determined based on known sizes of standard sized hole openings in a pattern of standard sized holes in the mesh.
17. A computer program product stored on a non-transitory computer readable medium and comprising machine executable instructions, wherein: The computer readable medium is located on an omnidirectional surface vehicle (OSV), and wherein, in response to the machine executable instructions being executed, the OSV is caused to perform operations, the operations comprising: generating one or more images of a net, wherein the net is located in an aquaculture facility and the one or more images are generated by a camera located within a first buoyancy compartment forming the OSV; examining the one or more images to determine if an anomaly is present in the web; In response to determining that an anomaly exists, identifying a location of the anomaly based on at least one of a location of the OSV, an orientation of the OSV, a field of view of the camera, and a location of a lens in the camera; and In conjunction with the location of the anomaly, an image is generated with the anomaly identified on the image.
18. The computer program product of claim 17, wherein: The first buoyancy tank is attached to at least one other buoyancy tank included in a group of buoyancy tanks, and wherein the group of buoyancy tanks are arranged to form a floating platform configured to transport the camera.
19. The computer program product of claim 17, wherein: The OSV also includes a first thruster located in a second buoyancy tank in the set of buoyancy tanks and a second thruster located in a third buoyancy tank in the set of buoyancy tanks, and wherein the first thruster and the second thruster are configured to move the OSV across a surface of a body of water.
20. The computer program product of claim 19, wherein: The operations also include: receiving an OSV position command identifying an operating position of the OSV; and The operation of the first thruster or the second thruster is controlled according to the OSV position command to control the positioning of the OSV.