Aquatic organism counting system and method
By analyzing flow channel images and defining scan lines for binarization, the range and orientation information of aquatic organisms can be identified, solving the problem that traditional aquatic organism counting relies on manual experience and achieving automated and accurate aquatic organism counting.
Patent Information
- Application Number
- CN202011620368.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-31
- Publication Date
- 2025-11-28
- Estimated Expiration
- 2040-12-31
AI Technical Summary
Traditional aquatic organism counting relies on manual methods, and its accuracy depends on the experience of the counting personnel, lacking automation and precision.
By analyzing the flow channel images, defining scan lines, performing binarization processing, identifying the range of aquatic organisms and determining their directional information, and automatically counting them using image acquisition devices and computer systems.
It enables automated and accurate counting of aquatic organisms, reduces human error, and improves the accuracy and efficiency of counting.
Smart Images

Figure CN114764917B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to a counting system and method for aquatic organisms. BACKGROUND
[0002] In the field of aquaculture, it is common to perform aquatic management operations, such as counting the number of aquatic organisms, to facilitate the breeding of aquatic organisms. Traditionally, the counting of the number of aquatic organisms is mostly performed manually. For example, for counting fry, a counting personnel counts the number of fry one by one. However, the manual counting method is too dependent on the experience of the counting personnel, and thus various counting systems for aquatic organisms have been developed to assist the counting personnel in counting the number of aquatic organisms. SUMMARY
[0003] Embodiments of the present application propose a counting system and method for aquatic organisms by analyzing flow channel images to obtain the number of aquatic organisms.
[0004] According to an embodiment of the present application, the above-mentioned counting method for aquatic organisms comprises: providing a plurality of flow channel images of a flow channel, wherein the flow channel images correspond one-to-one to a plurality of image capturing times; defining a scan line in each flow channel image, wherein the scan line corresponds to a plurality of scan line pixels of each flow channel image; performing a binarization process on the scan line pixels of each flow channel image to obtain a plurality of binarized pixel data, wherein the binarized pixel data correspond one-to-one to the flow channel images; determining a plurality of aquatic organism range data from the binarized pixel data, wherein the aquatic organism range data correspond one-to-one to the flow channel images, and each aquatic organism range data comprises at least one aquatic organism position data, the aquatic organism position data comprising an aquatic organism start position and an aquatic organism end position; determining an aquatic organism identification and direction information corresponding to each aquatic organism range data from the aquatic organism range data; and determining the number of aquatic organisms passing through the scan line according to the aquatic organism identification and direction information corresponding to each aquatic organism range data.
[0005] In some embodiments, the step of determining the aquatic organism identification and direction information corresponding to each aquatic organism range data from the plurality of aquatic organism range data comprises: determining a first aquatic organism identification code and a corresponding first aquatic organism direction code from a first aquatic organism range data, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data; and determining a second aquatic organism identification code and a corresponding second aquatic organism direction code from a second aquatic organism range data, the first aquatic organism identification code, and the first aquatic organism direction code, wherein the second aquatic organism range data is one of the plurality of aquatic organism range data that is later in time than the first aquatic organism range data.
[0006] In some embodiments, the step of determining the second aquatic organism identification code and the corresponding second aquatic organism direction code according to the second aquatic organism range data, the first aquatic organism identification code and the first aquatic organism direction code comprises: judging whether the aquatic organism location data of the second aquatic organism range data overlaps or is adjacent to the aquatic organism location data of the first aquatic organism range data; and setting the value of the second aquatic organism identification code to be the same as the first aquatic organism identification code when the aquatic organism location data of the second aquatic organism range data overlaps or is adjacent to the aquatic organism location data of the first aquatic organism range data.
[0007] In some embodiments, the step of determining the aquatic organism identification and direction information corresponding to each aquatic organism range data according to the aquatic organism range data further comprises: determining a third aquatic organism identification code and a corresponding third aquatic organism direction code according to the third aquatic organism range data, the second aquatic organism identification code and the second aquatic organism direction code, wherein the third aquatic organism range data is one of the aquatic organism range data later in time than the second aquatic organism range data. When the aquatic organism location data of the third aquatic organism range data overlaps or is adjacent to the aquatic organism location data of the second aquatic organism range data, the value of the third aquatic organism identification code is set to be the same as the second aquatic organism identification code.
[0008] In some embodiments, the step of determining the aquatic organism identification and direction information corresponding to each aquatic organism range data according to the aquatic organism range data further comprises: performing a checking step to judge whether the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite. When the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite, the value of the third aquatic organism identification code is set to be another new value.
[0009] In some embodiments, the step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the aquatic organism range data comprises: determining whether the plurality of aquatic organism position data of the first aquatic organism range data and the one of the aquatic organism position data of the second aquatic organism range data overlap to provide a first determination result, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data, the second aquatic organism range data is another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data later in time than the first aquatic organism range data; determining whether the plurality of aquatic organism position data of the third aquatic organism range data and the one of the aquatic organism position data of the second aquatic organism range data overlap to provide a second determination result, wherein the third aquatic organism range data is still another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data later in time than the second aquatic organism range data; and determining that the image capturing time point of the second aquatic organism range data has the biological cross-overlapping condition when both the first determination result and the second determination result are yes, and determining the aquatic organism identification and direction information according to the biological cross-overlapping condition.
[0010] According to an embodiment of the present application, the aquatic organism counting system comprises an image capturing device and a computer system. The image capturing device is used to capture a plurality of flow channel images of a flow channel, wherein the flow channel images correspond to a plurality of image capturing time points one by one. The computer system is electrically connected to the image capturing device to receive the flow channel images, wherein the computer system comprises a memory and a processor. The memory stores a plurality of instructions. The processor is used to execute the instructions to complete the following steps: defining a scan line in each flow channel image, wherein the scan line corresponds to a plurality of scan line pixels of each flow channel image; performing a binarization process on the scan line pixels of each flow channel image to obtain a plurality of binarization pixel data, wherein the binarization pixel data correspond to the flow channel images one by one; determining a plurality of aquatic organism range data according to the binarization pixel data, wherein the plurality of aquatic organism range data correspond to the flow channel images one by one, and each aquatic organism range data comprises at least one aquatic organism position data, the aquatic organism position data comprising an aquatic organism start position and an aquatic organism end position; determining an aquatic organism identification and direction information corresponding to each aquatic organism range data according to the plurality of aquatic organism range data; and determining the number of aquatic organisms passing through the scan line according to the aquatic organism identification and direction information corresponding to each aquatic organism range data.
[0011] In some embodiments, when the processor determines the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the aquatic organism range data, the processor determines a first aquatic organism identification code and a corresponding first aquatic organism direction code according to a first aquatic organism range data, wherein the first aquatic organism range data is one of the aquatic organism range data; and determines a second aquatic organism identification code and a corresponding second aquatic organism direction code according to a second aquatic organism range data, the first aquatic organism identification code and the first aquatic organism direction code, wherein the second aquatic organism range data is one of the aquatic organism range data later in time than the first aquatic organism range data.
[0012] In some embodiments, when the processor determines the second aquatic organism identification code and the corresponding second aquatic organism direction code according to the second aquatic organism range data, the first aquatic organism identification code and the first aquatic organism direction code, the processor determines whether the aquatic organism location data of the second aquatic organism range data overlaps or is adjacent to the aquatic organism location data of the first aquatic organism range data; and sets the value of the second aquatic organism identification code to be the same as the first aquatic organism identification code when the aquatic organism location data of the second aquatic organism range data overlaps or is adjacent to the aquatic organism location data of the first aquatic organism range data.
[0013] In some embodiments, when the processor determines the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the aquatic organism range data, the processor determines a third aquatic organism identification code and a corresponding third aquatic organism direction code according to a third aquatic organism range data, a second aquatic organism identification code and a second aquatic organism direction code, wherein the third aquatic organism range data is one of the aquatic organism range data later in time than the second aquatic organism range data; and sets the value of the third aquatic organism identification code to be the same as the second aquatic organism identification code when the aquatic organism location data of the third aquatic organism range data overlaps or is adjacent to the aquatic organism location data of the second aquatic organism range data.
[0014] In some embodiments, when the processor determines the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the aquatic organism range data, the processor performs a checking step to determine whether the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite; and sets the value of the third aquatic organism identification code to be another new value when the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite.
[0015] In some embodiments, when the processor determines the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the aquatic organism range data, the processor further determines whether the plurality of aquatic organism position data of the first aquatic organism range data and the one aquatic organism position data of the second aquatic organism range data overlap to provide a first determination result, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data, the second aquatic organism range data is another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data later in time than the first aquatic organism range data; determines whether the plurality of aquatic organism position data of a third aquatic organism range data and the one aquatic organism position data of the second aquatic organism range data overlap to provide a second determination result, wherein the third aquatic organism range data is another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data later in time than the second aquatic organism range data; and determines that the aquatic organism identification and direction information of the second aquatic organism range data is crossed and overlapped by the aquatic organism identification and direction information of the first aquatic organism range data and the third aquatic organism range data when both the first determination result and the second determination result are yes.
[0016] In order to make the above features and advantages of the present application more apparent, specific embodiments are described below in detail with reference to the accompanying drawings. BRIEF DESCRIPTION OF DRAWINGS
[0017] Figure 1 FIG. 1 is a diagram illustrating a counting system of aquatic organisms according to an embodiment of the present application;
[0018] Figure 2 FIG. 2 is a flowchart illustrating a counting method of aquatic organisms according to an embodiment of the present application;
[0019] Figure 3a and Figure 3b FIG. 3 is a diagram illustrating a flow channel image according to an embodiment of the present application;
[0020] Figure 4 FIG. 4 is a diagram illustrating binary pixel data according to an embodiment of the present application;
[0021] Figure 5 FIG. 5 is a diagram illustrating aquatic organism range data according to an embodiment of the present application;
[0022] Figures 6a-6f FIG. 6 is a diagram illustrating aquatic organism identification and direction information according to an embodiment of the present application;
[0023] Figure 7 FIG. 7 is a diagram illustrating a flow channel image according to an embodiment of the present application;
[0024] Figure 8This is a flowchart illustrating a method for counting aquatic organisms according to an embodiment of the present invention;
[0025] Figure 9 This illustrates binary pixel data according to an embodiment of the present invention;
[0026] Figure 10 This is a diagram illustrating the range of aquatic organisms according to an embodiment of the present invention;
[0027] Figures 11a-11c This illustrates aquatic organism identification and orientation information according to an embodiment of the present invention.
[0028] [Symbol Explanation]
[0029] 110: Counting System
[0030] 112: Image capturing device
[0031] 114: Computer System
[0032] 114a: Memory
[0033] 114b: Processor
[0034] 120~130: sink
[0035] 140: Flow channel
[0036] 200: Counting Method
[0037] 210-260: Steps
[0038] 300a, 300b: Flow channel images
[0039] 310, 320: pixels
[0040] 700: Flow channel image
[0041] 800: Counting Method
[0042] 810~860: Steps
[0043] SC: Scan line
[0044] FY: Fish fry Detailed Implementation
[0045] Please refer to Figure 1 , Figure 1 This illustration depicts a counting system 110 for aquatic organisms according to an embodiment of the present invention. In this embodiment, the counting system 110 is used to count the number of fish fry (FY) in a tank 120, but the embodiments of the present invention are not limited thereto. In other embodiments of the present invention, the counting system 110 can be applied to the counting of other aquatic organisms, such as shrimp fry. Figure 1As shown, a flow channel 140 is provided between the tank 120 and the tank 130 to allow the fry FY in the tank 120 to move from the tank 120 to the tank 130. In embodiments of the present application, the flow channel 140 is designed to allow the fry FY to move from the tank 120 to the tank 130 in a single direction. In other words, the fry FY cannot move in the flow channel 140 in a reverse direction to the tank 120.
[0046] The counting system 110 comprises an image capturing device 112 and a computer system 114. The image capturing device 112 is disposed adjacent to the flow channel 140 to capture images of the flow channel 140. For example, the image capturing device 112 can be disposed above, below, to the left of, to the right of, or in any other suitable orientation with respect to the flow channel 140. The image capturing device 112 can be, for example, a video camera or an image sensor configured with a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) device. The computer system 114 is electrically connected to the image capturing device 112, for example, in a wired or wireless manner, to receive and analyze the images of the flow channel captured by the image capturing device 112. In embodiments of the present application, the computer system 114 comprises a memory 114a and a processor 114b. The memory 114a stores a plurality of instructions, and the processor 114b is configured to execute the instructions in the memory 114a to analyze the images of the flow channel.
[0047] Please refer to Figure 2 , Figure 2 is a flow chart illustrating a counting method 200 of aquatic organisms according to an embodiment of the present application, wherein the counting method 200 is applied to the counting system 110 described above. In the counting method 200, a step 210 is first performed to provide images of the flow channel 140 using the image capturing device 112 described above. In one embodiment, the image capturing device 112 captures images of the flow channel 140 at a frequency of one image per 0.1 second, but embodiments of the present application are not limited thereto. In other embodiments of the present application, the frequency of image capturing can be adjusted according to the type of aquatic organisms and the structure of the flow channel. Next, a step 220 is performed to define scan lines in each of the images of the flow channel to calculate the number of fry FY using the scan lines. Please refer to Figure 3a and Figure 3b , Figure 3a and Figure 3bFigures 3A and 3B are diagrams illustrating flow channel images 300a and 300b according to an embodiment of the present application, wherein the flow channel images 300a and 300b are time-continuous images. In an embodiment of the present application, the scan line SC in each flow channel image is defined in the same position. For example, in the flow channel image 300a, the scan line SC is defined in the lower portion of the image, and in the flow channel image 300b, the scan line SC is also defined in the same position. Further, for a flow channel image, the scan line is a virtual line, and the scan line does not change the content of the flow channel image. For example, the scan line SC does not change the value of the pixel 310 in the flow channel images 300a and 300b.
[0048] Then, step 230 is performed to binarize the scan line pixels of each flow channel image to obtain a plurality of binarized pixel data. As shown in Figure 2B, after the scan line SC is defined, the pixels 320 that are passed by the scan line SC can be obtained. Step 230 is performed to binarize the scan line pixels 320 of each flow channel image to obtain the binarized pixel data of each flow channel image. Please refer to Figure 3a Figure 3b Figure 4 Figure 4 Figures 4A, 4B and 4C are diagrams illustrating binarized pixel data according to an embodiment of the present application. In an embodiment of the present application, since the scan line pixels 320 are 20, each binarized pixel data is composed of 20 pixels, and the pixels with the fish larvae are represented by black blocks (e.g., binarized pixel value is "1"). For example, the binarized pixel data of the flow channel image corresponding to the first image capturing time point (i.e., 0.1 second (s)) contains 5 black blocks, which appear at the 4th-5th pixels, the 13th-14th pixels and the 17th pixel. For another example, the binarized pixel data of the flow channel image corresponding to the second image capturing time point (i.e., 0.2 second (s)) contains 9 black blocks, which appear at the 2nd-3rd pixels, the 12th-15th pixels and the 17th-19th pixels. For yet another example, the binarized pixel data of the flow channel image corresponding to the third image capturing time point (i.e., 0.3 second (s)) contains 5 black blocks, which appear at the 3rd pixel, the 5th-6th pixels and the 19th-20th pixels. Since there are 10 continuous flow channel images in this embodiment, there are 10 binarized pixel data, and the binarized pixel data corresponding to the tenth image capturing time point (i.e., 1 second (s)) does not contain any black block. In other words, at the tenth image capturing time point, there is no fish larvae on the scan line SC.
[0049] Next, step 240 is performed to determine a plurality of aquatic organism range data according to the binarized pixel data. Please refer to Figure 5 Figure 5 is a diagram illustrating the aquatic organism range data according to an embodiment of the present application. Each piece of aquatic organism range data is determined according to the black blocks in the binarized pixel data. For example, the binarized pixel data corresponding to the first image capturing time point (i.e., 0.1 second (s)) contains black blocks appearing at the 3rd-4th pixels, the 13th-14th pixels, and the 17th pixel. Therefore, the aquatic organism range data corresponding to the first image capturing time point contains three pieces of aquatic organism location data (3, 4), (13, 14), and (17, 17), where 3, 13, 17 represent the start positions of the aquatic organisms, and 4, 14, 17 represent the end positions of the aquatic organisms, respectively. For another example, the binarized pixel data corresponding to the second image capturing time point contains black blocks appearing at the 2nd-3rd pixels, the 12th-15th pixels, and the 17th-19th pixels. Therefore, the aquatic organism range data corresponding to the second image capturing time point contains three pieces of aquatic organism location data (2, 3), (12, 15), and (17, 19). For yet another example, the binarized pixel data corresponding to the third image capturing time point contains black blocks appearing at the 3rd pixel, the 5th-6th pixels, and the 19th-20th pixels. Therefore, the aquatic organism range data corresponding to the third image capturing time point contains three pieces of aquatic organism location data (3, 3), (5, 6), and (19, 20).
[0050] In addition, since the binarized pixel data corresponding to the tenth image capturing time point does not contain any black block, the aquatic organism range data corresponding to the tenth image capturing time point is represented by N / A.
[0051] Then, step 250 is performed to determine a aquatic organism identification and direction information corresponding to each piece of aquatic organism range data according to the above-described aquatic organism range data. Please refer to Figures 6a-6f , Figures 6a-6f is a diagram illustrating the aquatic organism identification and direction information according to an embodiment of the present application. As shown in Figure 6a , since the first image capturing time point is the starting time point, and the corresponding aquatic organism range data contains three pieces of aquatic organism location data (3, 4), (13, 14), and (17, 17), all of the three pieces of aquatic organism location data are given an aquatic organism (e.g., fry) identification code #1, #2, and #3, and a direction identification code (also referred to as direction code) N to represent the direction is uncertain. Thus, the aquatic organism identification and direction information corresponding to the aquatic organism range data of the first image capturing time point is <#1, (3, 4), N>, <#2, (13, 14), N>, <#3, (17, 17), N>.
[0052] Embodiments of the present invention determine whether the aquatic organism location data at adjacent image capture time points (e.g., the first image capture time point and the second image capture time point) overlap or are adjacent, in order to provide a suitable identification code. For example... Figure 6b As shown, the second image capture time point follows the first image capture time point, and the corresponding aquatic organism range data includes three aquatic organism position data (2,3), (12,15) and (17,19). Among them, the aquatic organism position data (2,3) overlaps with the aforementioned <#1,(3,4),N> and the aquatic organism position expands to the left pixel. Therefore, the aquatic organism position data (2,3) can inherit the aquatic organism identification code #1 and be given a direction identification code L to represent the aquatic organism #1 moving to the left.
[0053] Secondly, the aquatic organism location data (12,15) overlaps with <#2,(13,14),N> and the aquatic organism location does not significantly move to the right or left. Therefore, the aquatic organism location data (12,15) can inherit the aquatic organism identification code #2 and be given a direction identification code V to represent the aquatic organism #2 moving forward.
[0054] Furthermore, the aquatic organism location data (17,19) overlaps with <#3,(17,17),N> and the aquatic organism location expands to the right by pixels. Therefore, the aquatic organism location data (17,19) can inherit the aquatic organism identification code #3 and be given a direction identification code R to represent the aquatic organism #3 moving to the right.
[0055] Thus, the aquatic organism identification and orientation information corresponding to the aquatic organism range data at the second image capture time point can be represented as <#1,(2,3),L>,<#2,(12,15),V>,<#3,(17,19),R>.
[0056] In another embodiment of the present invention, the direction of aquatic organisms can be determined by the increase or decrease of the value of position data. For example, considering the position data of aquatic organisms (2,3) and the position data of aquatic organisms at the previous time point (3,4), the change in the value of the position data is (-1,-1), and the sum of the changes is -2, that is, the value of the position data is decreasing, so it is determined that the aquatic organisms are moving to the left. As another example, considering the position data of aquatic organisms (17,19) and the position data of aquatic organisms at the previous time point (17,17), the change in the value of the position data is (0,+2), and the sum of the changes is +2, so it is determined that the aquatic organisms are moving to the right. As yet another example, considering the position data of aquatic organisms (12,15) and the position data of aquatic organisms at the previous time point (13,14), the change in the value of the position data is (+1,-1), and the sum of the changes is 0, so it is determined that the aquatic organisms are not significantly moving to the right or left.
[0057] As Figure 6c shown, the third image capturing time point is successive to the second image capturing time point, and the corresponding aquatic organism range data includes three pieces of aquatic organism position data (3, 3), (5, 6) and (19, 20). The aquatic organism position data (3, 3) has an overlapping range with the aforementioned <#1, (2, 3), N> and the aquatic organism position does not have a significant rightward or leftward movement, so the aquatic organism position data (3, 3) can inherit the aquatic organism identification code #1 and be given a direction identification code V to represent that the aquatic organism of #1 moves forward.
[0058] Secondly, the aquatic organism position data (5, 6) does not overlap or adjoin any aquatic organism position data of the second image capturing time point, so the aquatic organism position data (5, 6) can be given a new aquatic organism identification code #4 and a direction identification code N.
[0059] Further, the aquatic organism position data (19, 20) has an overlapping range with <#3, (17, 19), R> and the aquatic organism position is rightward pixel expansion, so the aquatic organism position data (19, 20) can inherit the aquatic organism identification code #3 and be given a direction identification code R to represent that the aquatic organism of #3 moves rightward.
[0060] In this way, the aquatic organism identification and direction information corresponding to the aquatic organism range data of the third image capturing time point is <#1, (3, 3), L>, <#4, (5, 6), N>, <#3, (19, 20), R>.
[0061] Continuing to analyze the aquatic organism range data of the fourth to seventh image capturing time points, the aquatic organism identification and direction information corresponding to the aquatic organism range data of the fourth to seventh image capturing time points is shown as follows: Figure 6dthe eighth image capturing time point, and the corresponding aquatic organism range data includes three aquatic organism position data (3, 5), (7, 8) and (16, 16). The aquatic organism position data (7, 8) has an overlapping range with the aquatic organism identification code #4 and the aquatic organism position extends to the left pixel, so the aquatic organism identification code #4 can be inherited by the aquatic organism position data (7, 8), and a direction identification code L is given to represent that the aquatic organism of #4 moves to the left, i.e. <#4, (7, 8), L>. However, at the fourth image capturing time point and the fifth image capturing time point, the aquatic organism of #4 moves to the right. Since the aquatic organism cannot change direction in a short time, the embodiment of the present application further includes a checking step to check whether the direction of each aquatic organism identification code conflicts. For example, when analyzing an aquatic organism position data, it is checked to determine whether the obtained aquatic organism identification code and its corresponding direction conflict with the previous time point, and the aquatic organism identification code is appropriately corrected when the conflict occurs.
[0062] For example, in the present embodiment, when analyzing the aquatic organism position data (7, 8) of the eighth image capturing time point, the aquatic organism identification code #4 and the corresponding direction identification code L can be obtained. Then, it is checked to determine whether it conflicts with the aquatic organism identification and direction information of the previous time point. Since the aquatic organism represented by the aquatic organism identification code #4 has the opposite direction identification code R at the fourth image capturing time point and the fifth image capturing time point, it is determined that a conflict occurs. A new aquatic organism identification code #7 is given to represent that a new aquatic organism passes through the scanning line SC, and the original <#4, (7, 8), L> is corrected to <#7, (7, 8), N>, as shown in Figure 6e .
[0063] Continuously analyzing and checking the aquatic organism range data of the remaining image capturing time points, the corresponding aquatic organism identification and direction information of each image capturing time point can be obtained as shown in Figure 6f . Figure 6f It can be seen that the aquatic organism identification and direction information corresponding to all aquatic organism range data includes seven aquatic organism identification codes #1-#7. In other words, between the first image capturing time point and the tenth image capturing time point, seven aquatic organisms pass through the scanning line SC.
[0064] As can be seen from the above description, the counting method 200 of aquatic organisms according to the embodiment of the present application is to binarize the pixels of the scanning lines to obtain the position data of the aquatic organisms, and then analyze the position data of the aquatic organisms to obtain the number of the aquatic organisms. In addition, the counting method 200 according to the embodiment of the present application also provides a checking step to check whether there is a direction conflict, so as to improve the accuracy of the counting.
[0065] Please refer to Figure 7 , which is a flow channel image 700 according to an embodiment of the present application, wherein the flow channel image 700 is provided with a plurality of scanning lines SC. Since the embodiment can obtain the aquatic organism range data of the plurality of scanning lines SC, the embodiment can integrate the number judgment results of each scanning line SC, and use, for example, a mathematical statistical method to further improve the accuracy of the aquatic organism counting method according to the embodiment of the present application. It is worth mentioning that the embodiment only needs to extract the scanning line pixel data on two scanning lines SC, and does not need to extract the pixel data of the entire flow channel image 700.
[0066] Please refer to Figure 8 , which is a flow chart of a counting method 800 of aquatic organisms according to an embodiment of the present application. In the counting method 800 of aquatic organisms, steps 810-830 are first performed to provide the flow channel image of the flow channel 140 by using the aforementioned image capturing device 112, and to binarize the flow channel image. Since the steps 810-830 are similar to the aforementioned steps 210-230, they will not be described here. In the embodiment, the binarized pixel data obtained by the step 830 is as shown in Figure 9 .
[0067] Figure 9 contains three binarized pixel data, which correspond to the first image capturing time point (i.e. 0.1 seconds (s)), the second image capturing time point (i.e. 0.2 seconds (s)) and the third image capturing time point (i.e. 0.3 seconds (s)) respectively. The binarized pixel data corresponding to the first image capturing time point contains 6 black blocks, which appear at the 7th-9th pixels and the 13th-15th pixels. The binarized pixel data corresponding to the second image capturing time point contains 7 black blocks, which appear at the 8th-14th pixels. The binarized pixel data corresponding to the third image capturing time point contains 6 black blocks, which appear at the 7th-9th pixels and the 13th-15th pixels.
[0068] Then, step 840 is performed to determine a plurality of aquatic organism range data according to the binarized pixel data. Please refer to Figure 10 , Figure 10is a diagram illustrating the aquatic organism range data according to an embodiment of the present application. Each piece of the aquatic organism range data is determined according to the black blocks in the binary pixel data. For example, the binary pixel data corresponding to the first image capturing time point contains black blocks appearing at the 7th-9th pixels and the 13th-15th pixels, thus the aquatic organism range data corresponding to the first image capturing time point contains two pieces of aquatic organism location data (7, 9) and (13, 15). For another example, the binary pixel data corresponding to the second image capturing time point contains black blocks appearing at the 8th-14th pixels, thus the aquatic organism range data corresponding to the second image capturing time point contains one piece of aquatic organism location data (8, 14). For yet another example, the binary pixel data corresponding to the third image capturing time point contains black blocks appearing at the 7th-9th pixels and the 13th-15th pixels, thus the aquatic organism range data corresponding to the third image capturing time point contains two pieces of aquatic organism location data (7, 9) and (13, 15).
[0069] Then, step 850 is performed to determine the aquatic organism identification and direction information corresponding to each piece of the aquatic organism range data according to the above-mentioned aquatic organism range data. Please refer to Figures 11a-11c , Figures 11a-11c is a diagram illustrating the aquatic organism identification and direction information according to an embodiment of the present application. As shown in Figure 11a , since the first image capturing time point is the starting time point, and the corresponding aquatic organism range data contains two pieces of aquatic organism location data (7, 9) and (13, 15), both of the two pieces of aquatic organism location data are given an aquatic organism (e.g. fry) identification code #1 and #2, and a direction identification code N is given to represent the direction is uncertain. Thus, the aquatic organism identification and direction information corresponding to the aquatic organism range data of the first image capturing time point is <#1, (7, 9), N>, <#2, (13, 15), N>, as shown in Figure 11a .
[0070] As shown in Figure 11bAs shown, the second image capture time point follows the first image capture time point, and the corresponding aquatic organism range data includes a piece of aquatic organism position data (8,14), where the aquatic organism position data (8,14) overlaps with the aforementioned <#1,(7,9),N>,<#2,(13,15),N>. Since the aquatic organism position data (8,14) overlaps with the aforementioned <#1,(7,9),N>,<#2,(13,15),N>, in this embodiment, the aquatic organism position data (8,14) is set to inherit both aquatic organism identification codes #1 and #2, and a direction identification code R is given to represent the aquatic organism #1 moving to the right, and a direction identification code L is given to represent the aquatic organism #2 moving to the left. In this way, the aquatic organism identification and direction information <#1,(8,14),R>, <#2,(8,14),L> corresponding to the aquatic organism range data at the second image capture time point can be obtained.
[0071] like Figure 11c As shown, the third image capture time point follows the second image capture time point, and the corresponding aquatic organism range data includes two aquatic organism location data points (7,9) and (13,15). The aquatic organism location data points (7,9) and (13,15) overlap with the aquatic organism identification and orientation information <#1,(8,14),R> and <#2,(8,14),L> of the aforementioned second image capture time point. In this embodiment, the time points before the second image capture time point (the first image capture time point) and after the second image capture time point (the third image capture time point) correspond to multiple aquatic organism range data points with overlapping ranges. Thus, this embodiment determines that there is biological overlap at the second image capture time point. The aquatic organism identification and orientation information corresponding to the aquatic organism range data of the third image capture time point is set as <#1,(13,15),R> and <#2,(7,9),L>.
[0072] Then, step 860 is performed to determine the number of aquatic organisms passing through the scan line based on the aquatic organism identification and orientation information corresponding to each aquatic organism range data. Figure 11c It can be seen that the aquatic organism identification and orientation information corresponding to all aquatic organism range data includes two aquatic organism identification codes #1 to #2. In other words, between the first image acquisition time point and the fourth image acquisition time point, two aquatic organisms passed through the scan line SC.
[0073] As can be seen from the above description, the aquatic organism counting method of the present invention can also be used to determine the number of fish fry when they swim in a cross-flowing manner, so as to avoid affecting the calculation of the number of fish fry due to the cross-flowing manner of fish fry.
[0074] While the application has been described by way of example with reference to certain embodiments thereof, it is not intended to limit the application to the details of those embodiments, but rather, intent is to cover all such modifications and variations that are within the scope of the application, as defined by the appended claims.
Claims
1. A method of counting aquatic organisms, characterized by, Comprising: providing a plurality of flow passage images of a flow passage, wherein the plurality of flow passage images correspond to a plurality of image capturing time points one-to-one; defining a scan line in each of the flow passage images, wherein the scan line corresponds to a plurality of scan line pixels of each of the flow passage images; performing a binarization process on the plurality of scan line pixels of each of the flow passage images to obtain a plurality of binarized pixel data, wherein the plurality of binarized pixel data correspond to the plurality of flow passage images one-to-one; determining a plurality of aquatic organism range data according to the plurality of binarized pixel data, wherein the plurality of aquatic organism range data correspond to the plurality of flow passage images one-to-one, and each of the aquatic organism range data comprises at least one aquatic organism location data, the aquatic organism location data comprising an aquatic organism start position and an aquatic organism end position; determining an aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data; and determining an aquatic organism quantity passing through the scan line according to the aquatic organism identification and direction information corresponding to each of the aquatic organism range data; wherein the step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data comprises: determining a first aquatic organism identification code and a corresponding first aquatic organism direction code according to a first aquatic organism range data, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data; and determining a second aquatic organism identification code and a corresponding second aquatic organism direction code according to a second aquatic organism range data, the first aquatic organism identification code and the first aquatic organism direction code, wherein the second aquatic organism range data is one of the plurality of aquatic organism range data which is later in time than the first aquatic organism range data.
2. The method of counting aquatic organisms according to claim 1, wherein The step of determining the second aquatic organism identification code and the corresponding second aquatic organism direction code according to the second aquatic organism range data, the first aquatic organism identification code and the first aquatic organism direction code comprises: judging whether the aquatic organism location data of the second aquatic organism range data overlaps or adjoins the aquatic organism location data of the first aquatic organism range data; when the aquatic organism location data of the second aquatic organism range data overlaps or adjoins the aquatic organism location data of the first aquatic organism range data, setting the value of the second aquatic organism identification code to be the same as the first aquatic organism identification code.
3. The method of counting aquatic organisms according to claim 1, wherein The step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data further comprises: determining a third aquatic organism identification code and a corresponding third aquatic organism direction code according to a third aquatic organism range data, the second aquatic organism identification code, the second aquatic organism direction code, wherein the third aquatic organism range data is one of the plurality of aquatic organism range data which is later in time than the second aquatic organism range data. wherein when the aquatic organism position data of the third aquatic organism range data overlaps or is adjacent to the aquatic organism position data of the second aquatic organism range data, the value of the third aquatic organism identification code is set to be the same as the second aquatic organism identification code.
4. The method of counting aquatic organisms according to claim 3, wherein The step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data further comprises: performing a checking step to determine whether the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite; when the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite, setting the value of the third aquatic organism identification code to be another new value.
5. A method of counting aquatic organisms, characterized by, comprises: providing a plurality of flow channel images of a flow channel, wherein the plurality of flow channel images correspond to a plurality of image capturing time points one by one; defining a scan line in each of the flow channel images, wherein the scan line corresponds to a plurality of scan line pixels of each of the flow channel images; performing a binarization process on the plurality of scan line pixels of each of the flow channel images to obtain a plurality of binarized pixel data, wherein the plurality of binarized pixel data correspond to the plurality of flow channel images one by one; determining a plurality of aquatic organism range data according to the plurality of binarized pixel data, wherein the plurality of aquatic organism range data correspond to the plurality of flow channel images one by one, and each of the aquatic organism range data comprises at least one aquatic organism position data, the aquatic organism position data comprising an aquatic organism start position and an aquatic organism end position; determining an aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data; and determining an aquatic organism quantity passing through the scan line according to the aquatic organism identification and direction information corresponding to each of the aquatic organism range data; wherein the step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data comprises: determining whether a plurality of aquatic organism position data of a first aquatic organism range data and one aquatic organism position data of a second aquatic organism range data overlap to provide a first determination result, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data, the second aquatic organism range data is another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data later in time than the first aquatic organism range data; determining whether a plurality of aquatic organism position data of a third aquatic organism range data and the one aquatic organism position data of the second aquatic organism range data overlap to provide a second determination result, wherein the third aquatic organism range data is still another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data later in time than the second aquatic organism range data; and When the first determination result and the second determination result are both yes, it is determined that the image capturing time point of the second aquatic organism range data has an aquatic organism cross-over overlap, and aquatic organism recognition and direction information are determined.
6. An aquatic organism counting system characterized by comprising: Comprise: An image capturing device for capturing a plurality of flow channel images of a flow channel, wherein the plurality of flow channel images correspond to a plurality of image capturing time points one-to-one; and A computer system electrically connected to the image capturing device to receive the plurality of flow channel images, wherein the computer system comprises: A memory storing a plurality of instructions; and A processor for executing the plurality of instructions to complete the following steps: Defining a scan line in each of the flow channel images, wherein the scan line corresponds to a plurality of scan line pixels of each of the flow channel images; Performing a binaryzation process on the plurality of scan line pixels of each of the flow channel images to obtain a plurality of binaryzation pixel data, wherein the plurality of binaryzation pixel data correspond to the plurality of flow channel images one-to-one; Determining a plurality of aquatic organism range data from the plurality of binaryzation pixel data, wherein the plurality of aquatic organism range data correspond to the plurality of flow channel images one-to-one, and each of the aquatic organism range data comprises at least one aquatic organism position data comprising an aquatic organism start position and an aquatic organism end position; Determining an aquatic organism recognition and direction information corresponding to each of the aquatic organism range data from the plurality of aquatic organism range data; And Determining an aquatic organism quantity passing through the scan line from the aquatic organism recognition and direction information corresponding to each of the aquatic organism range data; When the processor performs the step of determining the aquatic organism recognition and direction information corresponding to each of the aquatic organism range data from the plurality of aquatic organism range data, the processor performs the following steps: Determining a first aquatic organism recognition code and a corresponding first aquatic organism direction code from a first aquatic organism range data, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data; and Determining a second aquatic organism recognition code and a corresponding second aquatic organism direction code from a second aquatic organism range data, the first aquatic organism recognition code, and the first aquatic organism direction code, wherein the second aquatic organism range data is one of the plurality of aquatic organism range data later in time than the first aquatic organism range data.
7. The counting system of aquatic organisms according to claim 6, characterized in that, When the processor performs the step of determining the second aquatic organism recognition code and the corresponding second aquatic organism direction code from the second aquatic organism range data, the first aquatic organism recognition code, and the first aquatic organism direction code, the processor performs the following steps: Determining whether the aquatic organism position data of the second aquatic organism range data overlaps or is adjacent to the aquatic organism position data of the first aquatic organism range data; When the second aquatic organism location data of the second aquatic organism range data overlaps or is adjacent to the first aquatic organism location data of the first aquatic organism range data, the value of the second aquatic organism identification code is set to be the same as the first aquatic organism identification code.
8. The counting system of aquatic organisms according to claim 7, characterized in that, When the processor performs the step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data, the processor performs the following steps: According to a third aquatic organism range data, the second aquatic organism identification code, and the second aquatic organism direction code, a third aquatic organism identification code and a corresponding third aquatic organism direction code are determined, wherein the third aquatic organism range data is one of the plurality of aquatic organism range data that is later in time than the second aquatic organism range data. When the third aquatic organism location data of the third aquatic organism range data overlaps or is adjacent to the second aquatic organism location data of the second aquatic organism range data, the value of the third aquatic organism identification code is set to be the same as the second aquatic organism identification code.
9. The counting system of aquatic organisms according to claim 8, characterized in that, When the processor performs the step of determining the aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data, the processor performs the following steps: A checking step is performed to determine whether the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite; When the directions represented by the third aquatic organism direction code and the second aquatic organism direction code are opposite, the value of the third aquatic organism identification code is set to be another new value.
10. An aquatic organism counting system, characterized by comprising: Comprising: An image capturing device for capturing a plurality of flow channel images of a flow channel, wherein the plurality of flow channel images correspond one-to-one to a plurality of image capturing time points; and A computer system electrically connected to the image capturing device for receiving the plurality of flow channel images, wherein the computer system comprises: A memory storing a plurality of instructions; and A processor for executing the plurality of instructions to complete the following steps: defining a scan line in each of the flow channel images, wherein the scan line corresponds to a plurality of scan line pixels of each of the flow channel images; performing a binarization process on the plurality of scan line pixels of each of the flow channel images to obtain a plurality of binarized pixel data, wherein the plurality of binarized pixel data correspond one-to-one to the plurality of flow channel images; determining a plurality of aquatic organism range data according to the plurality of binarized pixel data, wherein the plurality of aquatic organism range data correspond one-to-one to the plurality of flow channel images, and each of the aquatic organism range data comprises at least one aquatic organism location data, the aquatic organism location data comprising an aquatic organism start position and an aquatic organism end position; determining an aquatic organism identification and direction information corresponding to each of the aquatic organism range data according to the plurality of aquatic organism range data; and determining an aquatic organism quantity passing through the scan line according to the aquatic organism identification and direction information corresponding to each of the aquatic organism range data. wherein when the processor performs the step of determining the aquatic organism identification and direction information corresponding to each of the plurality of aquatic organism range data according to the plurality of aquatic organism range data, the processor performs the following steps: determining whether the plurality of aquatic organism position data of a first aquatic organism range data and the single aquatic organism position data of a second aquatic organism range data overlap to provide a first determination result, wherein the first aquatic organism range data is one of the plurality of aquatic organism range data, the second aquatic organism range data is another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data that is later in time than the first aquatic organism range data; determining whether the plurality of aquatic organism position data of a third aquatic organism range data and the single aquatic organism position data of the second aquatic organism range data overlap to provide a second determination result, wherein the third aquatic organism range data is still another one of the plurality of aquatic organism range data and is one of the plurality of aquatic organism range data that is later in time than the second aquatic organism range data; and when both the first determination result and the second determination result are yes, determining that the second aquatic organism range data has the situation of organism cross-over overlap at the image capturing time point, and determining the aquatic organism identification and direction information accordingly.
Citation Information
Patent Citations
Aquatic animal counting system and method
CN102073905A
Automatic counting system for fish passing amount of fish passage based on underwater videos
CN106022459A