A fish target detection system

CN122945071APending Publication Date: 2026-10-20FISHERY MACHINERY & INSTR RES INST CHINESE ACADEMY OF FISHERY SCI +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611207997.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2026-06-08
Filing Date
2026-08-10
Publication Date
2026-10-20

AI Technical Summary

Technical Problem

[0006]本申请的目的是提供一种鱼类目标检测系统,以解决传统鱼类目标检测系统数据维度单一、架构耦合度高、并发处理弱的问题

Benefits of technology

本申请公开了一种鱼类目标检测系统,通过设置相互连接的宿主模块和插件模块,并在插件模块中设置包含水下双目相机插件和旋转声呐插件的数据源插件以及算法插件,由宿主模块统一管理插件模块的加载、初始化、启动及停止,并提供消息分发、日志记录及数据存储功能,由水下双目相机插件采集鱼类的体长数据并发布至宿主模块,由旋转声呐插件获取回波数据并构建旋转声呐图像发布至宿主模块,由算法插件从宿主模块订阅旋转声呐图像并对鱼类进行目标检测生成检测结果发布回宿主模块,从而实现了对水下环境中鱼类的自动化目标检测;同时,由于宿主模块对插件模块的统一管理以及插件模块中各插件之间的松耦合关系,解决了传统系统架构耦合度高、扩展性差的问题;宿主模块提供的消息分发功能支持各插件之间的高效通信,配合日志记录和数据存储功能,解决了并发处理弱、实时性不足的问题;通过引入水下双目相机插件和旋转声呐插件两种不同模态的数据源,解决了数据维度单一的问题。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure FT_1
    Figure FT_1
  • Figure FT_2
    Figure FT_2
  • Figure FT_3
    Figure FT_3
Patent Text Reader

Abstract

This application discloses a fish target detection system, relating to the field of intelligent monitoring technology in aquaculture. In this system, a host module manages the loading, initialization, startup, and shutdown of plug-in modules, provides message distribution functions, records logs, and stores data. An underwater binocular camera plug-in interacts with the underwater binocular camera to collect body length data of fish in the underwater environment and publishes it to the host module. A rotating sonar plug-in interacts with the rotating sonar to acquire echo data from the underwater environment and construct a rotating sonar image, which is then published to the host module. An algorithm plug-in subscribes to the rotating sonar image from the host module, performs target detection on fish in the underwater environment, generates detection results, and publishes them to the host module. The detection results include bounding box coordinates, category, and total number. This application solves the problems of traditional fish target detection systems, such as single data dimension, high architectural coupling, and weak concurrent processing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of intelligent monitoring technology for aquaculture, and in particular to a fish target detection system. Background Technology

[0002] In aquaculture, real-time and accurate monitoring of aquaculture status is a core prerequisite for optimizing feeding strategies, reducing aquaculture costs, and improving product quality. However, with the expansion of aquaculture scale and the upgrading of intelligent requirements, traditional monitoring methods and software systems are gradually revealing numerous technical bottlenecks. 1. Limited data dimensions and insufficient fusion capabilities: Traditional monitoring often relies on a single sensor or a single modal data (such as only acoustic signals or only optical images), failing to fully explore the complementary value of multimodal data, resulting in limited monitoring accuracy; at the same time, there is a lack of a standardized multimodal data fusion framework, making it difficult to efficiently coordinate and analyze different types of data.

[0003] 2. High degree of architectural coupling and poor scalability: Traditional monitoring and identification software often adopts a monolithic architecture, with data acquisition, algorithm processing, interface display and other functional modules tightly bound together. When adding new equipment (such as new sonar, cameras, and sensors) or updating algorithms, the entire system often needs to be reconstructed, resulting in high development and maintenance costs.

[0004] 3. Weak concurrent processing capability and insufficient real-time performance: In aquaculture scenarios, the simultaneous operation of multiple devices will generate massive amounts of high-concurrency data (such as sonar image streams, underwater binocular camera video streams, etc.). Traditional systems lack efficient message distribution and processing mechanisms, which can easily lead to data congestion and delays, and cannot meet the needs of real-time monitoring.

[0005] Therefore, a fish target detection system that supports multimodal data access, adopts a loosely coupled architecture, and has high concurrency processing capabilities is needed. Summary of the Invention

[0006] The purpose of this application is to provide a fish target detection system to solve the problems of traditional fish target detection systems, such as single data dimension, high architectural coupling, and weak concurrent processing.

[0007] To achieve the above objectives, this application provides the following solution.

[0008] This application provides a fish target detection system, comprising: a host module and a plug-in module interconnected; the plug-in module includes a data source plug-in and an algorithm plug-in; the data source plug-in includes an underwater binocular camera plug-in and a rotating sonar plug-in; The host module is used to manage the loading, initialization, startup and shutdown of the plugin modules, provide message distribution functions, record logs and store data; The underwater binocular camera plugin is used to interact with the underwater binocular camera, collect body length data of fish in the underwater environment, and publish it to the host module; The rotating sonar plugin is used to interact with the rotating sonar, acquire echo data of the underwater environment and construct a rotating sonar image, and publish the rotating sonar image to the host module; The algorithm plugin is used to subscribe to the rotating sonar image from the host module, perform target detection on fish in the underwater environment, generate fish detection results, and publish them to the host module; the detection results include: bounding box coordinates, category, and total number.

[0009] In one embodiment, the data source plugin further includes a forward-looking sonar plugin; the forward-looking sonar plugin is used to interact with the forward-looking sonar, acquire forward-looking sonar images of the underwater environment, and publish them to the host module.

[0010] In one embodiment, the data source plugin further includes: a water quality sensor plugin; The water quality sensor plugin is used to interact with the water quality sensor, collect water quality parameter data of the underwater environment, and publish it to the host module.

[0011] In one embodiment, the data source plugin further includes: an Internet of Things (IoT) plugin; The IoT plugin is used to interact with the aquaculture facilities, subscribe to the detection results published by the algorithm plugin from the host module, and control the operation of the aquaculture facilities based on the detection results.

[0012] In one embodiment, the plug-in module further includes tool plug-ins; the tool plug-ins include: a display plug-in, a database plug-in, and a data transformation plug-in; The display plugin is used to subscribe to the rotating sonar image, the forward-looking sonar image, the body length data, and the detection results from the host module, and render them to the user interface.

[0013] The database plugin is used to subscribe to the detection results from the host module and persistently store the detection results in the database; The data conversion plugin is used to convert data in different formats.

[0014] In one embodiment, the host module includes: a plug-in management unit, a message bus unit, a log management unit, and a memory pool; The plugin management unit is used to manage the loading, initialization, startup, and shutdown of plugin modules; The message bus unit is used to implement the message distribution function; the message distribution function includes: receiving data sent by the data source plugin or algorithm plugin, adding a timestamp to the data, and distributing the timestamped data to the plugins that subscribe to the corresponding data according to the subscription relationship; The log management unit is used to record the running status of the plug-in module and the error information generated during the message distribution process; The memory pool unit is used to store data published by the data source plugin and algorithm plugin, and zero-copy transfer is achieved through a reference counting strategy.

[0015] In one embodiment, the message bus unit employs a lock-free distribution mode.

[0016] In one embodiment, the algorithm plugin is a deep learning detection algorithm plugin; The deep learning detection algorithm plugin is used to subscribe to the rotating sonar image from the host module, preprocess the rotating sonar image, use a deep learning model to detect fish targets in the preprocessed image, obtain the detection result, and publish the detection result to the host module.

[0017] In one implementation, the host module uses a factory pattern to create instances of each plugin in the plugin module, and the creation order of the algorithm plugin instances takes precedence over the creation order of the data source plugin instances.

[0018] In one embodiment, the host module is developed using the C++ standard library.

[0019] According to the specific embodiments provided in this application, the following technical effects are disclosed: This application discloses a fish target detection system. It establishes interconnected host and plug-in modules. The plug-in modules include data source plug-ins (such as an underwater binocular camera plug-in and a rotating sonar plug-in) and algorithm plug-ins. The host module centrally manages the loading, initialization, startup, and shutdown of the plug-in modules, and provides message distribution, logging, and data storage functions. The underwater binocular camera plug-in collects fish body length data and publishes it to the host module. The rotating sonar plug-in acquires echo data, constructs a rotating sonar image, and publishes it to the host module. The algorithm plug-in subscribes to the rotating sonar image from the host module, performs target detection on the fish, generates detection results, and publishes them back to the host module. This achieves automated target detection of fish in the underwater environment. Furthermore, the unified management of the plug-in modules by the host module and the loose coupling between the plug-in modules solve the problems of high coupling and poor scalability inherent in traditional system architectures. The message distribution function provided by the host module supports efficient communication between plug-ins, and the logging and data storage functions address the issues of weak concurrency and insufficient real-time performance. By introducing two different modalities of data sources—the underwater binocular camera plug-in and the rotating sonar plug-in—the system solves the problem of limited data dimensions. Attached Figure Description

[0020] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0021] Figure 1 This is a schematic diagram of a fish target detection system according to one embodiment of this application; Figure 2 This is a diagram illustrating the plugin startup process; Figure 3 This is a diagram illustrating the plug-in shutdown process; Figure 4 To display a schematic diagram of the plugin's workflow; Figure 5 This is a diagram illustrating the configuration parameter management process. Detailed Implementation

[0022] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0023] The purpose of this application is to provide a fish target detection system that aims to solve the problems of traditional fish target detection systems, such as single data dimension, high architectural coupling, and weak concurrent processing.

[0024] To make the above-mentioned objectives, features and advantages of this application more apparent and understandable, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0025] In one exemplary embodiment, such as Figure 1 As shown, a fish target detection system is provided, including: a host module and a plug-in module that are interconnected; the plug-in module includes a data source plug-in and an algorithm plug-in; the data source plug-in includes an underwater binocular camera plug-in and a rotating sonar plug-in; The host module is used to manage the loading, initialization, startup, and shutdown of plugin modules, provide message distribution functions, record logs, and store data; The underwater binocular camera plugin is used to interact with the underwater binocular camera, collect body length data of fish in the underwater environment, and publish it to the host module; The rotating sonar plugin is used to interact with the rotating sonar, acquire echo data of the underwater environment, construct rotating sonar images, and publish the rotating sonar images to the host module; The algorithm plugin is used to subscribe to rotating sonar images from the host module, perform target detection on fish in the underwater environment, generate detection results of fish and publish them to the host module; the detection results include: bounding box coordinates, category and total number.

[0026] Specifically, the underwater binocular camera incorporates deep learning segmentation algorithms, image processing algorithms, and stereo vision algorithms. The deep learning segmentation algorithm detects fish outlines in the acquired underwater optical images, the image processing algorithm calculates the fish length outlined in the contours, and finally, the stereo vision algorithm corrects the fish length to obtain the fish's body length data. The underwater binocular camera plugin interacts with the camera via a software development kit (SDK) to acquire the fish's body length data and publish it to the message bus unit of the host module.

[0027] After the rotating sonar module sends a scan command, the rotating sonar rotates a certain angle, emits sound waves, and receives an echo data point, which is then reported back to the rotating sonar module. The rotating sonar module integrates several echo data points and constructs a rotating sonar image through coordinate transformation, image mapping, and other processes. A rotating sonar, also called a mechanical scanning sonar, can rotate 360 ​​degrees and scan a 360-degree horizontal area.

[0028] As an optional implementation, the data source plugin also includes: a forward-looking sonar plugin; the forward-looking sonar plugin is used to interact with the forward-looking sonar, acquire forward-looking sonar images of the underwater environment, and publish them to the host module.

[0029] Forward-looking sonar is short for multibeam forward-looking sonar. It can cover a fan-shaped area with the forward-looking sonar as the center, a radius of 60 meters, and an opening angle of 90 to 160 degrees in front of the forward-looking sonar.

[0030] As an optional implementation, the data source plugin also includes: a water quality sensor plugin; The water quality sensor plugin is used to interact with the water quality sensor, collect water quality parameter data of the underwater environment, and publish it to the host module.

[0031] Specifically, water quality parameters include: water temperature, dissolved oxygen, and pH value.

[0032] As an optional implementation, the data source plugin also includes: an IoT plugin; The IoT plugin is used to interact with the aquaculture facilities, subscribe to the detection results published by the algorithm plugin from the host module, and control the operation of the aquaculture facilities based on the detection results.

[0033] As an optional implementation, the plug-in module also includes tool plug-ins; tool plug-ins include: display plug-ins, database plug-ins, and data transformation plug-ins; The display plugin is used to subscribe to rotating sonar images, forward-looking sonar images, body length data, and detection results from the host module and render them to the user interface.

[0034] The database plugin is used to subscribe to detection results from the host module and persistently store the detection results in the database; The data conversion plugin is used to convert data in different formats.

[0035] As an optional implementation, the host module includes: a plug-in management unit, a message bus unit, a log management unit, and a memory pool; The plugin management unit is used to manage the loading, initialization, startup, and shutdown of plugin modules; The message bus unit is used to implement message distribution functionality. The message distribution functionality includes: receiving data sent by the data source plugin or algorithm plugin, adding timestamps to the data, and distributing the timestamped data to the plugins that subscribe to the corresponding data according to the subscription relationship. The log management unit is used to record the running status of the plugin modules and error information generated during message distribution; The memory pool unit is used to store data published by data source plugins and algorithm plugins, and zero-copy transfer is achieved through a reference counting strategy.

[0036] As an optional implementation, the message bus unit adopts a lock-free dispatch mode.

[0037] Specifically, the message bus unit is the central hub of the entire system. It manages the subscription relationships of all topics through a mapping table and distributes messages from publishers (i.e., data source plugins) to all subscribers (i.e., tool plugins, user interface plugins, and algorithm plugins).

[0038] When a plugin calls the subscription interface, the message bus unit appends the callback function to the list of the corresponding topic; when a plugin calls the publish interface, the message bus unit executes these callbacks sequentially. To prevent deadlock, the callback function cannot be called while holding a lock, otherwise the latter will lock the message bus unit and disrupt the entire kernel. Therefore, a lock-free dispatch mode is used to ensure thread safety.

[0039] In addition, the message bus unit provides automatic timestamp generation. In the publishing interface, the system automatically obtains the current system time and converts it into a millisecond-level timestamp, which is then written into the message's metadata, thereby simplifying plugin development.

[0040] When publishing a message, the publisher needs to fill in the subject, which is in the format: source plugin / type / target plugin (can be omitted). The naming format of the message subject is shown in Table 1.

[0041] Table 1. Message Subject Naming Format

[0042] All messages consist of metadata and payload. The metadata is shown in Table 2.

[0043] Table 2 Metadata Format Table

[0044] The payload uses a `std::any` type container, which can store data of any type. Based on the characteristics of fisheries multimodal data, the payload is divided into three categories: 1. Image Data: Further divided into 3-channel and 1-channel images. 3-channel images are color images, such as camera / sonar images; 1-channel images are intensity matrices, such as sonar echo intensity matrices. Image data uniformly adopts cv::mat, which is an industry standard data structure and has built-in reference counting functionality. 2. Parameter Class: JSON format is used uniformly, capable of carrying various sensor data, camera structured data, UI configuration parameters, etc. This format is also an industry standard, capable of describing complex messages and facilitating interaction between Python and C++. 3. Basic values: int32_t is used uniformly for error codes, status codes, result codes, etc. When publishing a message, the message carries a pointer to the payload. Zero copy is achieved through a reference counting strategy, which reduces the performance waste caused by memory copying.

[0045] As an optional implementation, the algorithm plugin is a deep learning detection algorithm plugin; The deep learning detection algorithm plugin is used to subscribe to rotating sonar images from the host module, preprocess the rotating sonar images, use a deep learning model to detect fish targets in the preprocessed images, obtain the detection results, and publish the detection results to the host module.

[0046] Specifically, the working process of the deep learning detection algorithm plugin includes: Step 1: The deep learning detection algorithm plugin subscribes to and receives rotating sonar images; Step 2: Preprocess the rotating sonar image to obtain the preprocessed rotating sonar image tensor; the preprocessing includes: scaling the image to a fixed size, normalizing the pixel values ​​from [0, 255] to [0, 1], converting the image channel order from height × width × channel to channel × height × width, and converting the data to float32 type.

[0047] Step 3: Convert the deep learning model (such as a trained YOLOv5 model) file into a TensorRTengine file in advance, and input the preprocessed rotating sonar image tensor into the TensorRT engine file for forward computation to obtain the original detection result tensor. Step 4: Post-process the original detection result tensor to remove redundant and low-confidence detection boxes, and map the coordinates back to the original image size to obtain the detection result.

[0048] Step 5: Encapsulate the detection results into a standard message format (JSON) containing timestamps, and publish the detection results to the topic dl_det / fish_cnt / ui (for display plugins and database plugins to subscribe to) through the message bus unit.

[0049] As an optional implementation, the host module uses the factory pattern to create instances of each plugin in the plugin module, and the creation order of the algorithm plugin instances takes precedence over the creation order of the data source plugin instances.

[0050] As an optional implementation, the host module is developed using the C++ standard library.

[0051] Specifically, the host module is developed entirely using the C++ standard library, without relying on any specific operating system or third-party libraries. Therefore, it can adapt to different hardware environments such as industrial computers and embedded devices, solving the problem of poor cross-platform portability in traditional systems and enabling large-scale application deployment. The host module also includes a unified configuration management unit, which manages the configuration parameters of each plugin using JSON format. Each plugin corresponds to an independent JSON configuration file. The user interface distributes configuration parameters through the configuration interface provided by the host module. Plugins subscribed to the topic receive and apply the configuration parameters, solving the problems of cumbersome configuration parameter management and low efficiency in parameter distribution and updates in traditional systems.

[0052] Specifically, the process of using this system to identify fish is as follows: 1. First, the host process is run. The host module initializes the message bus unit and loads, initializes, and starts each plugin in the plugin module in sequence.

[0053] 2. Then, the data source plugin (taking a rotating sonar as an example) starts working, collecting echo data of the underwater environment from the rotating sonar and constructing a rotating sonar image, and encapsulating the rotating sonar image into a rotating sonar image with a timestamp and publishing it to the message bus unit.

[0054] 3. Finally, the algorithm plugin, as a subscriber, automatically obtains the timestamped rotating sonar images from the message bus unit, uses a deep learning model to perform fish target detection on the timestamped rotating sonar images, obtains the detection results, publishes the detection results back to the message bus unit, displays them on the user interface in real time by the display plugin, and stores the detection results by the database plugin.

[0055] Specifically, all plugins inherit from the IPlugin base class, which encapsulates the following functionalities: 1. Subscribe Interface: Registers the topics this plugin is interested in with the host's message bus; 2. Publish Interface: Publishes messages to the host's message bus; 3. Initialization Interface (init): Injects the message bus and starts the main loop of the message thread (except for display plugins). Each plugin includes at least one thread: the message thread; 4. Startup Interface: Complex plugins can start multiple sub-threads here, such as a rotating scan sonar control plugin. Simple plugins can be handled directly in the message thread's processing interface. 5. Stop Interface (stop): The base class is responsible for stopping the message thread, and each plugin must add its own enabled thread to the stop interface; 6. Queue: After a message is published by a plugin, the publisher writes the message to the subscriber's queue through a callback function of the message bus. Because the message payload is a pointer, data is pushed in very quickly; and because the publisher does not wait for the subscriber's processing result, the publisher thread will not be blocked; the queue length can be defined during initialization. For example, if the length is set to 1, the subscriber will always wait for the previous message to be processed before processing the latest message, and the remaining messages will be discarded. 7. Processing Function (process): This is a virtual function, and each plugin has a different processing function. Plugins need to write their own. After the message queue receives a subscribed message, it will automatically call the subscriber's processing function to process the data.

[0056] like Figure 2 As shown, the host module uses the factory pattern to create plugin instances. First, a message bus is created, then each plugin is created and initialized sequentially: first, the data consumer plugin (i.e., tool plugin, user interface, and algorithm plugin) is created, followed by the data producer plugin (i.e., data source plugin). This ensures that a consumer can receive data immediately after the producer starts, preventing data loss. Currently, the plugin registration and discovery mechanism uses compile-time binding; all plugins are created within the host's constructor.

[0057] like Figure 3 As shown, the plugin stopping and destruction involves thread safety, and the specific design is as follows: The user interface (UI) calls the stop function of the host thread → the host thread checks the status and stops the plugin in reverse → the IPlugin base class stop (thread cleanup) is executed → the plugin resources are released.

[0058] The host module's message bus unit provides a publish interface, where publishers need to specify the topic, payload, and data type. Plugins subscribed to the topic will automatically receive the message; the publisher does not need to worry about how many plugins are receiving the message or how they process it.

[0059] The receiver first determines the broad data category based on the data type, and then determines the specific purpose based on the topic. The same data type may correspond to multiple topics (e.g., IMG_RGB may come from rss / img_rgb or uwc / img_rgb). In its processing function, the receiver first handles the commonalities of the broad category using a switch-case statement, and then handles the differences in specific topics using an if-else statement. This two-layer parsing strategy avoids writing repetitive type conversion code for each topic.

[0060] Regular plugins only need to inherit the IPlugin interface, and the message flow is unidirectional: subscribe → process → publish. Display plugins, in addition to inheriting IPlugin, also involve pybind11 and GIL management, and the message flow is bidirectional: subscribe → cache → notification → fetch.

[0061] like Figure 4 As shown, the display plugin's workflow includes: 1. Initialization phase: setting queue length, subscribing to topics for sonar images and device error codes, and starting worker threads; 2. Image reception and processing: type judgment → data extraction → thread-safe update → notifying the UI through a callback function provided by the host; 3. UI (pyside6 environment) data retrieval: local variable preparation → conversion to NumPy arrays → return to pyside6, updating the sonar image display area on the interface; 4. Error code handling: the display plugin subscribes to the status messages of each plugin, and also notifies the UI to update the interface through a callback.

[0062] The host class is designed according to the single responsibility principle. The host does not participate in specific business logic, but is only responsible for the creation, initialization, startup, and shutdown of plugins, as well as the binding of Python interfaces.

[0063] The host class initializes all plugins using the init() method, calling the init(bus) method of each plugin and passing in the message bus instance; it starts all plugins using the start() method, with each plugin creating an independent worker thread internally; and it stops all plugins using the stop() method, first stopping the downstream plugins of the data stream to prevent upstream plugins from continuing to send messages after the downstream has stopped, thus avoiding data loss.

[0064] To address the issue of cumbersome configuration parameter management for various input devices, this application implements unified configuration management using JSON format. Each plugin corresponds to an independent JSON configuration file, and the UI sends configuration parameters through the host-provided `set_config()` interface, simultaneously filling in the theme and payload. For example... Figure 5 As shown, in a configuration parameter management process, the UI needs to configure the image size for the rotating scanning sonar plugin. This is done by calling `set_config("ui / param / rss", '{"width": 234, "height": 567}')`. This command means that the UI sends configuration parameters to the rotating scanning sonar plugin, specifying an image width of 234 pixels and a height of 567 pixels. Since the rotating scanning sonar plugin subscribes to this UI configuration parameter topic, the message bus sends a message to the plugin. The plugin processes this message in its `process` function and configures the output image size.

[0065] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data must comply with relevant regulations.

[0066] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0067] This document uses specific examples to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only for the purpose of helping to understand the system and core ideas of this application. Furthermore, those skilled in the art will recognize that, based on the ideas of this application, there will be changes in the specific implementation methods and application scope. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A fish target detection system, characterized in that, The fish target detection system includes: a host module and a plug-in module connected to each other; the plug-in module includes a data source plug-in and an algorithm plug-in; the data source plug-in includes an underwater binocular camera plug-in and a rotating sonar plug-in. The host module is used to manage the loading, initialization, startup and shutdown of the plugin modules, provide message distribution functions, record logs and store data; The underwater binocular camera plugin is used to interact with the underwater binocular camera, collect body length data of fish in the underwater environment, and publish it to the host module; The rotating sonar plugin is used to interact with the rotating sonar, acquire echo data of the underwater environment and construct a rotating sonar image, and publish the rotating sonar image to the host module; The algorithm plugin is used to subscribe to the rotating sonar image from the host module, perform target detection on fish in the underwater environment, generate fish detection results, and publish them to the host module; the detection results include: bounding box coordinates, category, and total number.

2. The fish target detection system according to claim 1, characterized in that, The data source plugin also includes a forward-looking sonar plugin; the forward-looking sonar plugin is used to interact with the forward-looking sonar, acquire forward-looking sonar images of the underwater environment, and publish them to the host module.

3. The fish target detection system according to claim 2, characterized in that, The data source plugin also includes: a water quality sensor plugin; The water quality sensor plugin is used to interact with the water quality sensor, collect water quality parameter data of the underwater environment, and publish it to the host module.

4. The fish target detection system according to claim 3, characterized in that, The data source plugin also includes: an Internet of Things (IoT) plugin; The IoT plugin is used to interact with the aquaculture facilities, subscribe to the detection results published by the algorithm plugin from the host module, and control the operation of the aquaculture facilities based on the detection results.

5. The fish target detection system according to claim 2, characterized in that, The plugin module also includes tool plugins; the tool plugins include: display plugins, database plugins, and data conversion plugins; The display plugin is used to subscribe to the rotating sonar image, the forward-looking sonar image, the body length data, and the detection results from the host module, and render them to the user interface. The database plugin is used to subscribe to the detection results from the host module and persistently store the detection results in the database; The data conversion plugin is used to convert data in different formats.

6. The fish target detection system according to claim 5, characterized in that, The host module includes: a plugin management unit, a message bus unit, a log management unit, and a memory pool; The plugin management unit is used to manage the loading, initialization, startup, and shutdown of plugin modules; The message bus unit is used to implement the message distribution function; the message distribution function includes: receiving data sent by the data source plugin or algorithm plugin, adding a timestamp to the data, and distributing the timestamped data to the plugins that subscribe to the corresponding data according to the subscription relationship; The log management unit is used to record the running status of the plug-in module and the error information generated during the message distribution process; The memory pool unit is used to store data published by the data source plugin and algorithm plugin, and zero-copy transfer is achieved through a reference counting strategy.

7. The fish target detection system according to claim 6, characterized in that, The message bus unit adopts a lock-free distribution mode.

8. The fish target detection system according to claim 1, characterized in that, The algorithm plugin is a deep learning detection algorithm plugin; The deep learning detection algorithm plugin is used to subscribe to the rotating sonar image from the host module, preprocess the rotating sonar image, use a deep learning model to detect fish targets in the preprocessed image, obtain the detection result, and publish the detection result to the host module.

9. The fish target detection system according to claim 4, characterized in that, The host module uses the factory pattern to create instances of each plugin in the plugin module, and the creation order of the algorithm plugin instances takes precedence over the creation order of the data source plugin instances.

10. The fish target detection system according to claim 1, characterized in that, The host module is developed using the C++ standard library.