WO2024095584A1 - 情報処理プログラム、情報処理装置及び情報処理方法 - Google Patents

情報処理プログラム、情報処理装置及び情報処理方法 Download PDF

Info

Publication number
WO2024095584A1
WO2024095584A1 PCT/JP2023/031274 JP2023031274W WO2024095584A1 WO 2024095584 A1 WO2024095584 A1 WO 2024095584A1 JP 2023031274 W JP2023031274 W JP 2023031274W WO 2024095584 A1 WO2024095584 A1 WO 2024095584A1
Authority
WO
WIPO (PCT)
Prior art keywords
fish
information
virtual
captured
position information
Prior art date
Application number
PCT/JP2023/031274
Other languages
English (en)
French (fr)
Inventor
裕子 石若
Original Assignee
ソフトバンク株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソフトバンク株式会社 filed Critical ソフトバンク株式会社
Publication of WO2024095584A1 publication Critical patent/WO2024095584A1/ja

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K61/00Culture of aquatic animals
    • A01K61/90Sorting, grading, counting or marking live aquatic animals, e.g. sex determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06MCOUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
    • G06M11/00Counting of objects distributed at random, e.g. on a surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Definitions

  • the present invention relates to an information processing program, an information processing device, and an information processing method.
  • Various techniques for improving fish farming techniques have been known in the past. For example, a technique is known in which predetermined features that change depending on the number of fish (also called the number of tails) are extracted from images of fish in a fish pen. Then, a learning model, which is data on the relationship between the features and the number of tails created by machine learning, is compared with the extracted features to detect the number of tails from the learning model.
  • the above conventional technology only detects the number of fish in the fish pen, and it is not necessarily possible to accurately estimate information about the multiple fish in the pen from the images.
  • the information processing program causes a computer to execute the following steps: an acquisition step of acquiring a plurality of captured images from a plurality of different directions from a plurality of imaging devices that capture images of a fish tank in which a plurality of fish are present, the captured images being acquired from the plurality of different directions; and an estimation step of estimating, for each captured image, first fish position information indicating the position of each fish captured in each captured image in the fish tank based on the distance from the imaging device corresponding to each captured image acquired by the acquisition step to each fish captured in each captured image, consolidating the plurality of first fish position information corresponding to positions within a predetermined range from a predetermined position in the fish tank into second fish position information indicating the position of a single fish, and estimating information regarding the plurality of fish based on the second fish position information.
  • FIG. 1 is a diagram for explaining that the size of a fish detected by object detection differs from the tail length required by fish farmers.
  • FIG. 2 is a diagram illustrating an example of the configuration of the information processing apparatus according to the embodiment.
  • FIG. 3 is a diagram showing an example of the arrangement of a plurality of imaging devices that capture images of a fish pen from a plurality of different directions.
  • FIG. 4 is a diagram showing an example of images of a fish pen in which a plurality of fish are present, taken from a plurality of different directions, and an arrangement of virtual objects corresponding to each of the taken images.
  • FIG. 5 is a diagram showing a state in which virtual fish objects viewed from different directions are arranged overlapping each other in the same virtual space.
  • FIG. 1 is a diagram for explaining that the size of a fish detected by object detection differs from the tail length required by fish farmers.
  • FIG. 2 is a diagram illustrating an example of the configuration of the information processing apparatus according to the embodiment.
  • FIG. 3 is
  • FIG. 6 is a diagram showing a state after the position information of the virtual fish objects viewed from each direction has been aggregated.
  • FIG. 7 is a diagram showing how virtual fish objects viewed from different directions are detected by object detection according to the first modified example.
  • FIG. 8 is a diagram showing the relationship between a skeletal model of a virtual fish object and the diagonal length of the fish's tail.
  • FIG. 9 is a diagram showing an example of a method for arranging a virtual fish object according to the second modified example.
  • FIG. 10 is a hardware configuration diagram illustrating an example of a computer that realizes the functions of the information processing device.
  • Object detection is performed using a machine learning model (hereinafter also referred to as a trained model) that has been trained in advance to estimate the position and class of an object captured in an image from an image.
  • a machine learning model hereinafter also referred to as a trained model
  • an image of a school of fish swimming in a fish tank is input as input information to the trained model, and information regarding the position and number of tails of each fish belonging to the school of fish captured in the image is obtained as output information of the trained model.
  • Figure 1 is a diagram to explain that the size of fish detected by object detection differs from the tail length required by fish farmers.
  • image 1 is an image of a school of fish swimming in a fish pen.
  • Image 1 also includes fish 4 detected by object detection and a bounding box 2 surrounding fish 4, as well as fish 3 and a bounding box 5 surrounding fish 3.
  • the right side of Figure 1 shows the relationship between the total length, tail length, and body height of the fish.
  • the information that fish farmers actually need is how many fish of shipping size there are. Shipping size is determined by the tail length. Fish farmers estimate the weight of the fish based on the tail length.
  • the size of the target object detected by object detection is the size of the bounding box.
  • fish 4 detected from captured image 1 is close to its shape when viewed from the side, but its head is toward the back of the image. Therefore, the length of one side of bounding box 2 is different from the size of fish 4 when viewed from the side (e.g., the total length of the fish).
  • fish 3 detected from captured image 1 has its head facing forward. Therefore, the length of one side of bounding box 5 is different from the size of fish 3 when viewed from the side (e.g., the total length of the fish).
  • the information processing device uses multiple imaging devices to obtain multiple captured images of multiple fish in the water of the fish tank from multiple different directions.
  • the information processing device estimates the distance between each fish captured in the captured image and the imaging device (hereinafter also referred to as the camera-fish distance).
  • the information processing device places virtual objects corresponding to each fish at positions corresponding to the camera-fish distance in the virtual space corresponding to the fish tank (hereinafter also referred to as the fish tank space).
  • the information processing device selects one virtual object from the multiple virtual objects and deletes virtual objects other than the selected virtual object, thereby consolidating the position information of the virtual objects.
  • the information processing device adjusts the parameters of the position, size, orientation, and number of tails of each of the multiple virtual objects so as to reduce the error between the virtual image of the fish tank space corresponding to each of the multiple captured images and the captured image corresponding to the virtual image.
  • This allows the information processing device to accurately estimate the position, size, orientation, and number of fish in the fish tank from an image of the fish tank in which the fish are present. Therefore, the information processing device can accurately estimate information about the fish in the fish tank from the image.
  • the dimensions used to express the size of a fish include the total length of the fish, standard body length (body length), fork length, body height, body width, etc.
  • size of a fish is used in this specification, it is intended to include the size of a fish measured by any dimension, including the total length of the fish, standard body length (body length), fork length, body height, body width, etc.
  • Configuration of information processing device 2 is a diagram showing an example of the configuration of the information processing device 100 according to the embodiment.
  • the information processing device 100 includes a communication unit 110, a storage unit 120, an input unit 130, an output unit 140, and a control unit 150.
  • the communication unit 110 is realized by, for example, a network interface card (NIC), etc.
  • the communication unit 110 is connected to a network in a wired or wireless manner, and transmits and receives information to and from, for example, an imaging device.
  • NIC network interface card
  • the storage unit 120 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. Specifically, the storage unit 120 stores various programs (an example of an information processing program). The storage unit 120 also stores camera identification information for identifying each imaging device in association with camera information regarding each imaging device. For example, the storage unit 120 stores, as the camera information, information regarding the three-dimensional position coordinates of the space of the fish pen included in the imaging range of each imaging device, and information indicating the inter-camera distance, focal length, and parallax of each imaging device which is a stereo camera.
  • the input unit 130 may receive various operations from the user via a display surface (e.g., the output unit 140) using a touch panel function.
  • the input unit 130 may also receive various operations from buttons provided on the information processing device 100 or a keyboard or mouse connected to the information processing device 100.
  • the output unit 140 is a display screen realized by, for example, a liquid crystal display or an organic EL (Electro-Luminescence) display, and is a display device for displaying various information.
  • the output unit 140 displays various information according to the control of the control unit 150. Note that, when a touch panel is adopted in the information processing device 100, the input unit 130 and the output unit 140 are integrated. In the following description, the output unit 140 may be referred to as a screen.
  • Control unit 150 The control unit 150 is a controller, and is realized, for example, by a central processing unit (CPU) or a micro processing unit (MPU) executing various programs (corresponding to an example of an information processing program) stored in a storage device inside the information processing device 100 using a RAM as a working area.
  • the control unit 150 is also a controller, and is realized, for example, by an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • the control unit 150 has an acquisition unit 151, an estimation unit 152, and an output control unit 153 as functional units, and may realize or execute the information processing functions described below. Note that the internal configuration of the control unit 150 is not limited to the configuration shown in FIG. 2, and may be other configurations that perform the information processing described below. Also, each functional unit indicates a function of the control unit 150, and does not necessarily have to be physically distinct.
  • the acquisition unit 151 acquires a plurality of captured images captured from a plurality of different directions from a plurality of imaging devices that capture images of a fish tank in which a plurality of fish are present from a plurality of different directions. For example, the acquisition unit 151 acquires a plurality of captured images from each of the plurality of imaging devices via the communication unit 110.
  • Figure 3 shows an example of the arrangement of multiple imaging devices that capture images of a fish cage from multiple different directions.
  • the fish cage 10 is shaped like a box with the top side removed, and is placed, for example, in seawater.
  • the length of one side of the fish cage is 3m.
  • imaging devices are placed on each side of the fish cage 10 according to the depth from the water surface. For example, imaging devices 11, 21, 31, and 41 are placed on each side at a depth of 1m from the water surface. Also, imaging devices 12, 22, 32, and 42 are placed on each side at a depth of 2m from the water surface. Also, imaging devices 13, 23, 33, and 43 are placed on each side at a depth of 3m from the water surface.
  • imaging devices 11-13, 21-23, 31-33, and 41-43 are each a stereo camera consisting of two cameras.
  • the position of each imaging device relative to the fish cage 10 is known in advance.
  • the angle of view of each imaging device is also known in advance.
  • the imaging range of each imaging device is also known in advance based on the position and angle of view of each imaging device.
  • the acquisition unit 151 identifies information on the three-dimensional position coordinates of the space of the fish cage included in the imaging range of each imaging device based on the information on the imaging range of each imaging device.
  • the storage unit 120 stores the information on the three-dimensional position coordinates of the space of the fish cage included in the imaging range of each imaging device in association with the camera identification information.
  • the estimation unit 152 estimates the distance from the imaging device corresponding to each captured image acquired by the acquisition unit 151 to each fish captured in each captured image (hereinafter, may be referred to as the camera-fish distance). Specifically, the estimation unit 152 refers to the storage unit 120 and acquires information indicating the inter-camera distance, focal length, and parallax of the imaging device that is a stereo camera from the camera information associated with the camera identification information acquired by the acquisition unit 151. Next, the estimation unit 152 estimates the camera-fish distance based on the acquired information indicating the inter-camera distance, focal length, and parallax and each captured image.
  • the estimation unit 152 then refers to the storage unit 120 to acquire information on the three-dimensional position coordinates of the space of the fish tank included in the imaging range of each imaging device from the camera information associated with the camera identification information acquired by the acquisition unit 151.
  • the estimation unit 152 estimates, for each captured image, first fish position information indicating the position of each fish captured in each captured image in the fish tank, based on the estimated camera-fish distance and information on the three-dimensional position coordinates of the space of the fish tank included in the imaging range of each imaging device.
  • the estimation unit 152 places virtual objects corresponding to each fish at positions corresponding to the first fish position information in the virtual space corresponding to the fish tank (hereinafter also referred to as the fish tank space).
  • the estimation unit 152 places virtual objects at positions in the fish tank space corresponding to the first fish position information estimated for each captured image.
  • the estimation unit 152 tracks each detected fish to determine the direction of each fish (the direction of the head of each fish).
  • Figure 4 shows an example of images of a fish pen in which multiple fish are present, taken from multiple different directions, and the arrangement of virtual objects corresponding to each image.
  • the upper part of Figure 4 shows images 12A, 22A, 32A, and 42A taken by imaging devices 12, 22, 32, and 42, respectively.
  • the lower part of Figure 4 shows virtual images 12B, 22B, 32B, and 42B showing the state in which estimation unit 152 has placed virtual objects at each position in the fish pen space corresponding to the first fish position information estimated for each of images 12A, 22A, 32A, and 42A. That is, the lower part of FIG.
  • FIG 4 shows virtual images 12B, 22B, 32B, and 42B obtained by placing virtual objects at each position in the fish tank space as viewed from the direction corresponding to the imaging devices 12, 22, 32, and 42, and capturing images of the fish tank space using virtual cameras 12', 22', 32', and 42' corresponding to the imaging devices 12, 22, 32, and 42.
  • FIG. 5 is a diagram showing how virtual objects of a fish viewed from each direction are arranged overlapping each other in the same virtual space.
  • FIG. 5 shows virtual image 50, viewed from a certain direction, showing how virtual objects corresponding to virtual images 12B, 22B, 32B, and 42B shown in the lower part of FIG. 4 are arranged overlapping each other in the same virtual space.
  • FIG. 5 shows how each virtual object viewed from each direction is arranged overlapping each other in the same virtual space.
  • the estimation unit 152 also aggregates a plurality of pieces of first fish position information corresponding to positions within a predetermined range from a predetermined position in the fish pen into second fish position information indicating the position of one fish. Specifically, when there is another virtual object overlapping the position of the predetermined virtual object arranged in the virtual space, the estimation unit 152 aggregates the first fish position information of the predetermined virtual object and the first fish position information of the other virtual object into second fish position information indicating the position of one fish. More specifically, when multiple virtual objects overlap at the same position in the virtual space, the estimation unit 152 aggregates the position information of the virtual objects by selecting one virtual object from the multiple virtual objects and deleting virtual objects other than the selected virtual object.
  • the estimation unit 152 compares the area of the fish region in each captured image, which is the area in which each fish is captured. Next, the estimation unit 152 aggregates the multiple pieces of first fish position information into the second fish position information by selecting the first fish position information corresponding to the captured image with the largest area of the fish region from the multiple pieces of first fish position information as the second fish position information.
  • Figure 6 shows the state after the position information of the virtual fish objects as seen from each direction has been aggregated.
  • the number of virtual objects has been reduced by the amount of aggregation compared to Figure 5, and the resulting virtual image resembles an image of a school of fish in an actual fish pen.
  • the estimation unit 152 aggregates the position information of virtual objects by selecting one virtual object from among the multiple virtual objects when multiple virtual objects overlap at the same position in the virtual space and deleting virtual objects other than the selected virtual object.
  • the aggregation method is not limited to this.
  • the estimation unit 152 calculates a representative value of the first fish position information of the multiple overlapping virtual objects.
  • the estimation unit 152 calculates the average value, median, or mode of the first fish position information of the multiple overlapping virtual objects as an example of the representative value.
  • the estimation unit 152 may aggregate the multiple first fish position information into second fish position information by adopting the calculated representative value of the first fish position information as the second fish position information.
  • the estimation unit 152 also generates a plurality of virtual images obtained by capturing an image of a virtual space in which virtual objects corresponding to each fish are placed at positions corresponding to the second fish position information in the virtual space corresponding to the fish pen, using a plurality of virtual cameras corresponding to each of the plurality of imaging devices. For example, the estimation unit 152 generates a plurality of virtual images obtained by capturing an image of a fish pen space in which the aggregated virtual objects shown in FIG. 6 are placed, using a plurality of virtual cameras corresponding to each of the plurality of imaging devices. That is, the estimation unit 152 generates a virtual image corresponding to each imaging device.
  • the estimation unit 152 then changes the parameter values for each virtual object so as to reduce the error between each virtual image and each captured image corresponding to each virtual image. Specifically, the estimation unit 152 compares each virtual image with each captured image corresponding to each virtual image, and changes the size and orientation of each virtual object so as to reduce the error between each virtual image and each captured image. More specifically, the estimation unit 152 may use a genetic algorithm to determine the parameter values for each virtual object that minimize the error between each virtual image and each captured image corresponding to each virtual image. For example, the parameter values for each virtual object are values indicating the position of each virtual object, values indicating the orientation of each virtual object, or values indicating the size of each virtual object.
  • the estimation unit 152 may determine the parameter values using a machine learning model instead of using a genetic algorithm. For example, the estimation unit 152 may determine the parameter values for each virtual object using a machine learning model that has been trained to output, as output information, parameter values that minimize the error between each virtual image and each captured image corresponding to each virtual image when each virtual image and each captured image corresponding to each virtual image are input as input information.
  • the estimation unit 152 estimates information about the multiple fish based on the parameter values for each virtual object after the change.
  • the information about the multiple fish is fish position information indicating the position of each fish in the fish tank, fish orientation information indicating the direction of each fish, fish size information indicating the size of each fish, or tail number information indicating the number of multiple fish. In this way, the estimation unit 152 estimates information about the multiple fish based on the second fish position information.
  • the output control unit 153 outputs information about the multiple fish estimated by the estimation unit 152 to the output unit 140.
  • the output control unit 153 causes the output unit 140 to display fish size information and tail number information of each fish in the fish pen estimated by the estimation unit 152.
  • the estimation unit 152 estimates information about a plurality of fishes based on position information of a virtual object.
  • the estimation unit 152 estimates posture information related to the posture of a virtual object, and estimates information about a plurality of fishes based on the posture information. This allows the information processing device 100 to estimate, for example, the size of each fish with greater accuracy. Therefore, the information processing device 100 can improve the estimation accuracy of information about a plurality of fishes.
  • the estimation unit 152 performs object detection on the aggregated virtual image corresponding to each captured image. Next, the estimation unit 152 detects each virtual object in each virtual image, and estimates posture information regarding the posture of each detected virtual object based on the size of a bounding box surrounding each detected virtual object. Next, the estimation unit 152 estimates information regarding the multiple fishes based on the posture information.
  • FIG. 7 is a diagram showing how virtual fish objects viewed from each direction in the first modified example are detected by object detection.
  • FIG. 7 shows virtual images 12C, 22C, 32C, and 42C obtained by capturing images of the fish pen space after aggregation using virtual cameras 12', 22', 32', and 42' corresponding to imaging devices 12, 22, 32, and 42.
  • virtual images 12C, 22C, 32C, and 42C respectively contain identical fish 62, 63, 64, and 65 detected by object detection, and bounding boxes 52, 53, 54, and 55 surrounding fish 62, 63, 64, and 65.
  • the estimation unit 152 also estimates the posture of the virtual object that will enter each bounding box. Specifically, the estimation unit 152 estimates how the skeletal model of the virtual object that will enter each bounding box will bend. More specifically, the estimation unit 152 estimates the angle between pairs of joints and bones that make up the skeletal model. A pair of a spherical joint and a conical bone is called a rig. In other words, the estimation unit 152 estimates what angle each rig should maintain in order to enter each bounding box. In this way, the estimation unit 152 estimates the posture of the virtual object that will enter each bounding box for the same virtual object detected in each virtual image. For example, the estimation unit 152 may use a genetic algorithm to estimate the posture of the virtual object that will enter each bounding box with the minimum error between the posture information estimated to enter each bounding box.
  • the estimation unit 152 may estimate the posture of a virtual object using a machine learning model. For example, when each bounding box related to the same virtual object detected in each virtual image and an image of the virtual object contained in each bounding box are input as input information, the estimation unit 152 may estimate the posture of a virtual object using a machine learning model that has been trained to output, as output information, posture information of the virtual object that minimizes the error between posture information estimated to be included in each bounding box.
  • FIG. 8 is a diagram showing the relationship between the skeletal model of a virtual fish object and the tail length of the fish.
  • FIG. 8 shows a virtual fish object 70, a skeletal model 71 of the virtual object 70, and the spherical joints and conical bones that make up the skeletal model 71.
  • the upper part of FIG. 8 shows a virtual object that is contained in a bounding box such as that shown in FIG. 7 and has its body bent into a C shape.
  • the estimation unit 152 estimates the posture of the virtual object, it can accurately estimate the tail length of the virtual object by straightening the bent rig of the skeletal model.
  • the estimation unit 152 estimates the posture of a virtual object using an aggregated virtual image corresponding to each captured image.
  • the estimation unit 152 may estimate the posture of a virtual object using an aggregated virtual image corresponding to at least one of the captured images.
  • the estimation unit 152 generates a second estimation model that estimates the posture of a fish virtual object by performing transfer learning on a first estimation model that estimates the posture of a person.
  • the estimation unit 152 estimates the posture of a virtual object included in the aggregated virtual image corresponding to at least one captured image by inputting the aggregated virtual image corresponding to at least one captured image as input information for the second estimation model.
  • Second Modification In the above-described embodiment, a case where the information processing device 100 can estimate the camera-to-fish distance has been described. In the second modified example, a case where the information processing device 100 cannot estimate the camera-to-fish distance will be described.
  • a case where the information processing device 100 cannot estimate the camera-to-fish distance corresponds to, for example, a case where each imaging device that captures an image of the fish tank is a monocular camera rather than a stereo camera.
  • FIG. 9 is a diagram showing an example of a method for arranging virtual fish objects according to the second modified example.
  • the left side of FIG. 9 is a diagram of the fish pen space viewed from above.
  • multiple virtual objects are arranged in a line at the same position as viewed from each of the virtual cameras in four directions.
  • each virtual object has the same size.
  • the estimation unit 152 gradually moves the position of each virtual object in the fish pen space away from the position of the virtual camera, and moves each virtual object to a position where it appears to be about the same size as each fish captured in an image captured by an imaging device corresponding to the virtual camera.
  • the estimation unit 152 performs the same process from four directions and arranges each virtual object in the position that best matches when viewed from the four directions.
  • the estimation unit 152 arranges each virtual object in the position when viewed from each direction.
  • the information processing device 100 includes an acquisition unit 151 and an estimation unit 152.
  • the acquisition unit 151 acquires a plurality of captured images captured from a plurality of different directions from a plurality of imaging devices that capture images of a fish tank in which a plurality of fish are present, from a plurality of different directions.
  • the estimation unit 152 estimates, for each captured image, first fish position information indicating the position of each fish captured in each captured image in the fish tank based on the distance from the imaging device corresponding to each captured image acquired by the acquisition unit 151 to each fish captured in each captured image, aggregates a plurality of first fish position information corresponding to positions within a predetermined range from a predetermined position in the fish tank into second fish position information indicating the position of one fish, and estimates information regarding the plurality of fish based on the second fish position information.
  • the information processing device 100 can accurately estimate the position, size, orientation, and number of each of the multiple fish in the fish pen from an image of the fish pen in which the multiple fish are present. Therefore, the information processing device 100 can accurately estimate information about the multiple fish in the fish pen from the image.
  • the estimation unit 152 aggregates the multiple first fish position information into the second fish position information by selecting, from the multiple first fish position information, the first fish position information corresponding to the captured image with the largest area of the fish area based on the area of the fish area in each captured image, thereby consolidating the multiple first fish position information into the second fish position information.
  • the first fish position information corresponding to an image in which the fish area is large has higher accuracy than the first fish position information corresponding to an image in which the fish area is small. This allows the information processing device 100 to select the first fish position information with higher accuracy from among the multiple pieces of first fish position information as the second fish position information.
  • the estimation unit 152 also generates a plurality of virtual images captured by a plurality of virtual cameras corresponding to a plurality of imaging devices of a virtual space in which virtual objects corresponding to each fish are placed at positions corresponding to the second fish position information in the virtual space corresponding to the fish pen, changes the values of parameters related to each virtual object so as to reduce the error between each virtual image and each captured image corresponding to each virtual image, and estimates information related to the plurality of fish based on the parameter values related to each virtual object after the change.
  • the information processing device 100 can accurately estimate the position, size, orientation, and number of each of the multiple fish in the fish tank from an image of the fish tank in which the multiple fish are present, based on a comparison between each virtual image and each captured image corresponding to each virtual image.
  • the parameter value for each virtual object is a value indicating the position of each virtual object, a value indicating the orientation of each virtual object, or a value indicating the size of each virtual object.
  • the information processing device 100 can accurately estimate the position, size, orientation, and number of each of the multiple fish in the fish pen from an image captured of the fish pen in which the multiple fish are present.
  • the estimation unit 152 also performs object detection on a virtual image corresponding to at least one of the captured images, detects each virtual object in the virtual image, estimates posture information regarding the posture of each detected virtual object based on the size of a bounding box surrounding each detected virtual object, and estimates information regarding the multiple fishes based on the posture information.
  • the information processing device 100 can estimate, for example, the size of each fish with greater accuracy. Therefore, the information processing device 100 can improve the accuracy of estimating information about multiple fish.
  • the information regarding the multiple fish is fish position information indicating the position of each fish in the fish tank, fish orientation information indicating the direction of each fish, fish size information indicating the size of each fish, or tail number information indicating the number of multiple fish.
  • the information processing device 100 is realized by a computer 1000 having a configuration as shown in Fig. 10, for example.
  • Fig. 10 is a hardware configuration diagram showing an example of a computer that realizes the functions of the information processing device 100.
  • the computer 1000 includes a CPU 1100, a RAM 1200, a ROM 1300, a HDD 1400, a communication interface (I/F) 1500, an input/output interface (I/F) 1600, and a media interface (I/F) 1700.
  • the CPU 1100 operates based on the programs stored in the ROM 1300 or the HDD 1400, and controls each component.
  • the ROM 1300 stores a boot program executed by the CPU 1100 when the computer 1000 starts up, and programs that depend on the hardware of the computer 1000, etc.
  • HDD 1400 stores programs executed by CPU 1100 and data used by such programs.
  • Communication interface 1500 receives data from other devices via a specified communication network and sends it to CPU 1100, and transmits data generated by CPU 1100 to other devices via the specified communication network.
  • the CPU 1100 controls output devices such as a display and a printer, and input devices such as a keyboard and a mouse, via the input/output interface 1600.
  • the CPU 1100 acquires data from the input devices via the input/output interface 1600.
  • the CPU 1100 also outputs the data it generates to the output devices via the input/output interface 1600.
  • the media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200.
  • the CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700 and executes the loaded program.
  • the recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase change rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
  • the CPU 1100 of the computer 1000 executes programs loaded onto the RAM 1200 to realize the functions of the control unit 150.
  • the CPU 1100 of the computer 1000 reads and executes these programs from the recording medium 1800, but as another example, the CPU 1100 may obtain these programs from another device via a specified communication network.
  • each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure.
  • the specific form of distribution and integration of each device is not limited to that shown in the figure, and all or part of them can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc.
  • REFERENCE SIGNS LIST 100 Information processing device 110 Communication unit 120 Storage unit 130 Input unit 140 Output unit 150 Control unit 151 Acquisition unit 152 Estimation unit 153 Output control unit

Landscapes

  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Environmental Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Zoology (AREA)
  • Physics & Mathematics (AREA)
  • Marine Sciences & Fisheries (AREA)
  • Animal Husbandry (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Farming Of Fish And Shellfish (AREA)

Abstract

情報処理プログラムは、複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、複数の異なる方向それぞれから撮像された複数の撮像画像を取得する取得手順と、取得手順によって取得された各撮像画像に対応する撮像装置から各撮像画像に撮像された各魚までの距離に基づいて、各撮像画像に撮像された各魚の生簀における位置を示す第1魚位置情報を撮像画像ごとに推定し、生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約し、第2魚位置情報に基づいて、複数の魚に関する情報を推定する推定手順と、をコンピュータに実行させる。

Description

情報処理プログラム、情報処理装置及び情報処理方法
 本発明は、情報処理プログラム、情報処理装置及び情報処理方法に関する。
 従来、魚の養殖技術を向上させるための様々な技術が知られている。例えば、生簀内の魚が撮影された撮影画像から、魚の数(尾数ともいう)に応じて変化する予め定められた特徴量を抽出する。そして、機械学習による特徴量と尾数との関係データである学習モデルに、抽出された特徴量を照合することにより、学習モデルから尾数を検知する技術が知られている。
特許第6787471号公報
 しかしながら、上記の従来技術では、生簀内の尾数を検知するにすぎないため、画像から生簀に所在する複数の魚に関する情報を精度よく推定することができるとは限らない。
 実施形態に係る情報処理プログラムは、複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、前記複数の異なる方向それぞれから撮像された複数の撮像画像を取得する取得手順と、前記取得手順によって取得された各撮像画像に対応する前記撮像装置から各撮像画像に撮像された各魚までの距離に基づいて、各撮像画像に撮像された各魚の前記生簀における位置を示す第1魚位置情報を前記撮像画像ごとに推定し、前記生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約し、前記第2魚位置情報に基づいて、前記複数の魚に関する情報を推定する推定手順と、をコンピュータに実行させる。
 実施形態の一態様によれば、画像から生簀に所在する複数の魚に関する情報を精度よく推定することができるといった効果を奏する。
図1は、物体検出により検出される魚のサイズと養殖業者にとって必要な尾斜長とが異なることを説明するための図である。 図2は、実施形態に係る情報処理装置の構成例を示す図である。 図3は、生簀を複数の異なる方向それぞれから撮像する複数の撮像装置の配置例を示す図である。 図4は、複数の魚が所在する生簀を複数の異なる方向それぞれから撮像した撮像画像と各撮像画像に対応する仮想オブジェクトの配置例を示す図である。 図5は、各方向から見た魚の仮想オブジェクトを同一の仮想空間上に重ねて配置した様子を示す図である。 図6は、各方向から見た魚の仮想オブジェクトの位置情報を集約した後の様子を示す図である。 図7は、第1の変形例に係る各方向から見た魚の仮想オブジェクトが物体検出により検出された様子を示す図である。 図8は、魚の仮想オブジェクトの骨格モデルと魚の尾斜長の関係を示す図である。 図9は、第2の変形例に係る魚の仮想オブジェクトの配置方法の一例を示す図である。 図10は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
 以下に、本願に係る情報処理プログラム、情報処理装置及び情報処理方法を実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理プログラム、情報処理装置及び情報処理方法が限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.はじめに〕
 従来、静止画像や動画像(以下、画像ともいう)に撮像された対象物の位置推定およびクラス分類を実行する物体検出の技術が知られている。物体検出では、対象物の位置を矩形の枠(バウンディングボックスともいう)として検出する。
 物体検出は、画像から画像に撮像された対象物の位置およびクラスを推定するようあらかじめ学習された機械学習モデル(以下、学習済みモデルともいう)を用いて行われる。例えば、生簀を泳いでいる魚の群れを撮像した撮像画像を学習済みモデルの入力情報として入力し、撮像画像に撮像された魚の群れに属する各魚の位置および尾数に関する情報を学習済みモデルの出力情報として得る。
 図1は、物体検出により検出される魚のサイズと養殖業者にとって必要な尾斜長とが異なることを説明するための図である。図1の左側は、生簀を泳いでいる魚の群れを撮像した撮像画像1を示す。また、撮像画像1には、物体検出により検出された魚4ならびに魚4を囲むバウンディングボックス2、および、魚3ならびに魚3を囲むバウンディングボックス5が含まれている。図1の右側は、魚の全長、尾斜長、および体高の関係を示す。実際の養殖業者にとって必要な情報は、出荷サイズの魚が何尾いるかである。出荷サイズは、尾斜長で決まる。養殖業者は、尾斜長に基づいて魚の重量を推定する。
 ここで、物体検出により検出される対象物の大きさは、バウンディングボックスの大きさである。図1に示す例では、撮像画像1から検出された魚4は、真横から見た形状に近いが、頭が画像の奥に向かっている。したがって、バウンディングボックス2の一辺の長さは、魚4を真横からみた大きさ(例えば、魚の全長)とは異なる。また、撮像画像1から検出された魚3は、頭が正面を向いている。したがって、バウンディングボックス5の一辺の長さは、魚3を真横からみた大きさ(例えば、魚の全長)とは異なる。
 上述したように、従来の物体検出の技術を用いて検出されるのは、バウンディングボックスの大きさであり、バウンディングボックスの大きさは、養殖業者にとって必要な尾斜長とは異なる。
 これに対し、本実施形態に係る情報処理装置は、複数の撮像装置を用いて、複数の異なる方向それぞれから生簀の水中にいる複数の魚を撮影した複数の撮影画像を取得する。続いて、情報処理装置は、撮影画像に写っている各魚と撮像装置との距離(以下、カメラ魚間距離ともいう)を推定する。続いて、情報処理装置は、各魚に対応する仮想オブジェクトを生簀に対応する仮想空間(以下、生簀空間ともいう)のカメラ魚間距離に対応する各位置に配置する。続いて、情報処理装置は、生簀空間における同じ位置に複数の仮想オブジェクトが重なっている場合は、複数の仮想オブジェクトの中から一つの仮想オブジェクトを選択し、選択された仮想オブジェクト以外の仮想オブジェクトを削除することで、仮想オブジェクトの位置情報を集約する。続いて、情報処理装置は、複数の撮影画像それぞれに対応する生簀空間の仮想画像と、仮想画像に対応する撮影画像との誤差が小さくなるよう、複数の仮想オブジェクトそれぞれの位置、大きさ、向き、および尾数のパラメータを調整する。これにより、情報処理装置は、複数の魚が所在する生簀を撮像した撮像画像から、生簀に所在する複数の魚それぞれの位置、大きさ、向き、および尾数を精度よく推定することができる。したがって、情報処理装置は、画像から生簀に所在する複数の魚に関する情報を精度よく推定することができる。
 なお、魚の大きさを表す寸法には、魚の全長、標準体長(体長)、尾叉長、体高、体幅などの種類が存在する。本願明細書において「魚の大きさ」と記載する場合には、魚の全長、標準体長(体長)、尾叉長、体高、体幅などいずれの寸法によって測定される魚の大きさをも含む概念とする。
 また、以下では、画像が動画像である場合について説明する。
〔2.情報処理装置の構成〕
 図2は、実施形態に係る情報処理装置100の構成例を示す図である。情報処理装置100は、通信部110と、記憶部120と、入力部130と、出力部140と、制御部150とを有する。
(通信部110)
 通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、撮像装置との間で情報の送受信を行う。
(記憶部120)
 記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。具体的には、記憶部120は、各種プログラム(情報処理プログラムの一例)を記憶する。また、記憶部120は、各撮像装置を識別するカメラ識別情報と、各撮像装置に関するカメラ情報とを対応付けて記憶する。例えば、記憶部120は、カメラ情報として、各撮像装置の撮像可能範囲に含まれる生簀の空間の3次元位置座標に関する情報、および、ステレオカメラである各撮像装置のカメラ間距離、焦点距離ならびに視差を示す情報を記憶する。
(入力部130)
 入力部130は、利用者から各種操作が入力される。例えば、入力部130は、タッチパネル機能により表示面(例えば出力部140)を介して利用者からの各種操作を受け付けてもよい。また、入力部130は、情報処理装置100に設けられたボタンや、情報処理装置100に接続されたキーボードやマウスからの各種操作を受け付けてもよい。
(出力部140)
 出力部140は、例えば、液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ等によって実現される表示画面であり、各種情報を表示するための表示装置である。出力部140は、制御部150の制御に従って、各種情報を表示する。なお、情報処理装置100にタッチパネルが採用される場合には、入力部130と出力部140とは一体化される。また、以下の説明では、出力部140を画面と記載する場合がある。
(制御部150)
 制御部150は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部150は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
 制御部150は、取得部151と、推定部152と、出力制御部153を機能部として有し、以下に説明する情報処理の作用を実現または実行してよい。なお、制御部150の内部構成は、図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、各機能部は、制御部150の機能を示したものであり、必ずしも物理的に区別されるものでなくともよい。
(取得部151)
 取得部151は、複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、複数の異なる方向それぞれから撮像された複数の撮像画像を取得する。例えば、取得部151は、通信部110を介して、複数の撮像装置それぞれから複数の撮像画像それぞれを取得する。
 図3は、生簀を複数の異なる方向それぞれから撮像する複数の撮像装置の配置例を示す図である。図3では、生簀10は、立方体の上面を除いた箱のような形状をしており、例えば、海水中に配置される。図3では、生簀の一辺の長さは3mである。また、生簀10の各側面には、水面からの深さに応じて撮像装置が配置される。例えば、水面から1mの深さには、撮像装置11、21、31、41がそれぞれ各側面に配置される。また、水面から2mの深さには、撮像装置12、22、32、42がそれぞれ各側面に配置される。また、水面から3mの深さには、撮像装置13、23、33、43がそれぞれ各側面に配置される。図3では、撮像装置11~13、21~23、31~33、および41~43それぞれは、2つのカメラで構成されるステレオカメラである。
 図3に示すように、生簀10に対する各撮像装置の位置はあらかじめわかっている。また、各撮像装置の画角もあらかじめわかっている。また、各撮像装置の位置および画角に基づいて、各撮像装置の撮像可能範囲はあらかじめわかっている。取得部151は、各撮像装置の撮像可能範囲に関する情報に基づいて、各撮像装置の撮像可能範囲に含まれる生簀の空間の3次元位置座標に関する情報を特定する。記憶部120は、各撮像装置の撮像可能範囲に含まれる生簀の空間の3次元位置座標に関する情報をカメラ識別情報と対応付けて記憶する。
(推定部152)
 推定部152は、取得部151によって取得された各撮像画像に対応する撮像装置から各撮像画像に撮像された各魚までの距離(以下、カメラ魚間距離と記載する場合がある)を推定する。具体的には、推定部152は、記憶部120を参照して、取得部151が取得したカメラ識別情報と対応付けられたカメラ情報のうち、ステレオカメラである撮像装置のカメラ間距離、焦点距離ならびに視差を示す情報を取得する。続いて、推定部152は、取得したカメラ間距離、焦点距離ならびに視差を示す情報および各撮像画像に基づいて、カメラ魚間距離を推定する。
 続いて、推定部152は、記憶部120を参照して、取得部151が取得したカメラ識別情報と対応付けられたカメラ情報のうち、各撮像装置の撮像可能範囲に含まれる生簀の空間の3次元位置座標に関する情報を取得する。続いて、推定部152は、推定したカメラ魚間距離と各撮像装置の撮像可能範囲に含まれる生簀の空間の3次元位置座標に関する情報とに基づいて、各撮像画像に撮像された各魚の生簀における位置を示す第1魚位置情報を撮像画像ごとに推定する。続いて、推定部152は、各魚に対応する仮想オブジェクトを生簀に対応する仮想空間(以下、生簀空間ともいう)の第1魚位置情報に対応する各位置に配置する。推定部152は、各撮像画像について推定された第1魚位置情報に対応する生簀空間の各位置に仮想オブジェクトを配置する。
 また、推定部152は、各撮像画像に対する物体検出を行った後に、検出された各魚をトラッキングすることにより、各魚の方向(各魚の頭の向き)を決定する。
 図4は、複数の魚が所在する生簀を複数の異なる方向それぞれから撮像した撮像画像と各撮像画像に対応する仮想オブジェクトの配置例を示す図である。図4の上段は、撮像装置12、22、32および42によってそれぞれ撮像された撮像画像12A、22A、32Aおよび42Aを示す。図4の下段は、推定部152が、撮像画像12A、22A、32Aおよび42Aにそれぞれについて推定された第1魚位置情報に対応する生簀空間の各位置に仮想オブジェクトを配置した状態を示す仮想画像12B、22B、32Bおよび42Bである。すなわち、図4の下段は、撮像装置12、22、32および42に対応する方向から見た生簀空間の各位置に仮想オブジェクトを配置し、撮像装置12、22、32および42に対応する仮想カメラ12´、22´、32´および42´によって生簀空間を撮像して得られた仮想画像12B、22B、32Bおよび42Bを示す。
 図5は、各方向から見た魚の仮想オブジェクトを同一の仮想空間上に重ねて配置した様子を示す図である。図5では、図4の下段で示した仮想画像12B、22B、32Bおよび42Bに対応する仮想オブジェクトを同一の仮想空間上に重ねて配置した様子をある方向から見た仮想画像50を示す。図5では、各方向から見た各仮想オブジェクトが同一の仮想空間上に重ねて配置される様子を示す。
 また、推定部152は、生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約する。具体的には、推定部152は、仮想空間に配置された所定の仮想オブジェクトの位置と重なっている他の仮想オブジェクトが存在する場合、所定の仮想オブジェクトの第1魚位置情報と他の仮想オブジェクトの第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約する。より具体的には、推定部152は、仮想空間における同じ位置に複数の仮想オブジェクトが重なっている場合は、複数の仮想オブジェクトの中から一つの仮想オブジェクトを選択し、選択された仮想オブジェクト以外の仮想オブジェクトを削除することで、仮想オブジェクトの位置情報を集約する。例えば、推定部152は、各撮像画像のうち各魚が撮像された領域である魚領域の面積を比較する。続いて、推定部152は、複数の第1魚位置情報の中から魚領域の面積が最も大きい撮像画像に対応する第1魚位置情報を第2魚位置情報として選択することにより、複数の第1魚位置情報を第2魚位置情報に集約する。
 図6は、各方向から見た魚の仮想オブジェクトの位置情報を集約した後の様子を示す図である。図6では、図5と比べて、集約された分だけ仮想オブジェクトの数が減り、実際の生簀に所在する魚の群れを撮像した撮像画像と類似する仮想画像となった様子を示す。
 なお、上述した実施形態では、推定部152が、仮想空間における同じ位置に複数の仮想オブジェクトが重なっている場合は、複数の仮想オブジェクトの中から一つの仮想オブジェクトを選択し、選択された仮想オブジェクト以外の仮想オブジェクトを削除することで、仮想オブジェクトの位置情報を集約する場合について説明したが、集約の方法はこれに限られない。例えば、推定部152は、仮想空間における同じ位置に複数の仮想オブジェクトが重なっている場合は、重なっている複数の仮想オブジェクトの第1魚位置情報の代表値を算出する。例えば、推定部152は、代表値の一例として、重なっている複数の仮想オブジェクトの第1魚位置情報の平均値、中央値、または、最頻値を算出する。続いて、推定部152は、算出した第1魚位置情報の代表値を第2魚位置情報として採用することにより、複数の第1魚位置情報を第2魚位置情報に集約してもよい。
 また、推定部152は、生簀に対応する仮想空間における第2魚位置情報に対応する位置に各魚に対応する仮想オブジェクトが配置された仮想空間を複数の撮像装置それぞれに対応する複数の仮想カメラそれぞれによって撮像した複数の仮想画像を生成する。例えば、推定部152は、図6に示した集約後の仮想オブジェクトが配置された生簀空間を複数の撮像装置それぞれに対応する複数の仮想カメラそれぞれによって撮像した複数の仮想画像を生成する。すなわち、推定部152は、各撮像装置に対応する仮想画像を生成する。
 続いて、推定部152は、各仮想画像と各仮想画像に対応する各撮像画像との誤差が小さくなるように、各仮想オブジェクトに関するパラメータの値を変化させる。具体的には、推定部152は、各仮想画像と各仮想画像に対応する各撮像画像とを比較して、各仮想画像と各撮像画像との誤差が小さくなるように、各仮想オブジェクトの大きさや向きを変化させる。より具体的には、推定部152は、遺伝的アルゴリズムを用いて、各仮想画像と各仮想画像に対応する各撮像画像との誤差が最小となるような各仮想オブジェクトに関するパラメータの値を決定してよい。例えば、各仮想オブジェクトに関するパラメータの値は、各仮想オブジェクトの位置を示す値、各仮想オブジェクトの向きを示す値、または、各仮想オブジェクトの大きさを示す値である。
 なお、推定部152は、遺伝的アルゴリズムを用いる代わりに、機械学習モデルを用いてパラメータの値を決定してもよい。例えば、推定部152は、各仮想画像と各仮想画像に対応する各撮像画像が入力情報として入力された場合に、各仮想画像と各仮想画像に対応する各撮像画像との誤差が最小となるようなパラメータの値を出力情報として出力するよう学習された機械学習モデルを用いて、各仮想オブジェクトに関するパラメータの値を決定してもよい。
 続いて、推定部152は、変化させた後の各仮想オブジェクトに関するパラメータの値に基づいて、複数の魚に関する情報を推定する。例えば、複数の魚に関する情報は、生簀における各魚の位置を示す魚位置情報、各魚の向きを示す魚向き情報、各魚の大きさを示す魚サイズ情報、または、複数の魚の数を示す尾数情報である。このようにして、推定部152は、第2魚位置情報に基づいて、複数の魚に関する情報を推定する。
(出力制御部153)
 出力制御部153は、推定部152によって推定された複数の魚に関する情報を出力部140に出力する。例えば、出力制御部153は、推定部152によって推定された生簀における各魚の魚サイズ情報および尾数情報を出力部140に表示させる。
〔3.変形例〕
 上述した情報処理装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、実施形態の変形例について説明する。
〔3-1.第1の変形例〕
 上述した実施形態では、推定部152が仮想オブジェクトの位置情報に基づいて複数の魚に関する情報を推定する場合について説明した。第1の変形例では、推定部152が仮想オブジェクトの姿勢に関する姿勢情報を推定し、姿勢情報に基づいて、複数の魚に関する情報を推定する。これにより、情報処理装置100は、例えば、各魚の大きさをより精度よく推定することができる。したがって、情報処理装置100は、複数の魚に関する情報の推定精度を向上させることができる。
 具体的には、推定部152は、各撮像画像に対応する集約後の仮想画像に対する物体検出を行う。続いて、推定部152は、各仮想画像における各仮想オブジェクトを検出し、検出された各仮想オブジェクトを囲むバウンディングボックスの大きさに基づいて、検出された各仮想オブジェクトの姿勢に関する姿勢情報を推定する。続いて、推定部152は、姿勢情報に基づいて、複数の魚に関する情報を推定する。
 図7は、第1の変形例に係る各方向から見た魚の仮想オブジェクトが物体検出により検出された様子を示す図である。図7では、撮像装置12、22、32および42に対応する仮想カメラ12´、22´、32´および42´によって集約後の生簀空間を撮像して得られた仮想画像12C、22C、32Cおよび42Cを示す。また、図7では、仮想画像12C、22C、32Cおよび42Cには、それぞれ、物体検出により検出された同一の魚62、63、64ならびに65、および、魚62、63、64ならびに65を囲むバウンディングボックス52、53、54ならびに55が含まれている。
 また、推定部152は、各バウンディングボックスに入る仮想オブジェクトの姿勢を推定する。具体的には、推定部152は、各バウンディングボックスに入る仮想オブジェクトの骨格モデルの曲がり方を推定する。より具体的には、推定部152は、骨格モデルを構成するジョイント(関節)とボーン(骨)の組同士の角度を推定する。また、球形のジョイント(関節)と円錐形のボーン(骨)の組をリグと呼ぶ。すなわち、推定部152は、各バウンディングボックスに入るには、各リグがどのような角度を保てばよいかを推定する。このようにして、推定部152は、各仮想画像で検出された同一の仮想オブジェクトについて、各バウンディングボックスに入る仮想オブジェクトの姿勢を推定する。例えば、推定部152は、遺伝的アルゴリズムを用いて、各バウンディングボックスに入ると推定された姿勢情報同士の誤差が最小となるような仮想オブジェクトの姿勢を推定結果としてよい。
 なお、推定部152は、遺伝的アルゴリズムを用いる代わりに、機械学習モデルを用いて仮想オブジェクトの姿勢を推定してもよい。例えば、推定部152は、各仮想画像で検出された同一の仮想オブジェクトに関する各バウンディングボックスと各バウンディングボックスに含まれる仮想オブジェクトの画像とが入力情報として入力された場合に、各バウンディングボックスに入ると推定される姿勢情報同士の誤差が最小となるような仮想オブジェクトの姿勢情報を出力情報として出力するよう学習された機械学習モデルを用いて、仮想オブジェクトの姿勢を推定してもよい。
 図8は、魚の仮想オブジェクトの骨格モデルと魚の尾斜長の関係を示す図である。図8は、魚の仮想オブジェクト70と仮想オブジェクト70の骨格モデル71と、骨格モデル71を構成する球形のジョイント(関節)と円錐形のボーン(骨)を示す。図8の上段は、図7に示すようなバウンディングボックスに入っている仮想オブジェクトがCの字型に体を曲げている様子を示す。推定部152は、仮想オブジェクトの姿勢を推定した場合、曲がっている骨格モデルのリグを真っ直ぐに伸ばすことで、仮想オブジェクトの尾斜長を精度よく推定することができる。
 上記では、推定部152が、各撮像画像に対応する集約後の仮想画像を用いて、仮想オブジェクトの姿勢を推定する場合について説明したが、推定部152は、各撮像画像のうち少なくとも一の撮像画像に対応する集約後の仮想画像を用いて、仮想オブジェクトの姿勢を推定してよい。具体的には、推定部152は、人物の姿勢を推定する第1推定モデルに対する転移学習を行うことにより、魚の仮想オブジェクトの姿勢を推定する第2推定モデルを生成する。続いて、推定部152は、少なくとも一の撮像画像に対応する集約後の仮想画像を第2推定モデルの入力情報として入力することにより、少なくとも一の撮像画像に対応する集約後の仮想画像に含まれる仮想オブジェクトの姿勢を推定する。
〔3-2.第2の変形例〕
 上述した実施形態では、情報処理装置100がカメラ魚間距離を推定できる場合について説明した。第2の変形例では、情報処理装置100がカメラ魚間距離できない場合について説明する。ここで、情報処理装置100がカメラ魚間距離できない場合とは、例えば、生簀を撮像する各撮像装置がステレオカメラではなく、単眼カメラであるような場合に対応する。
 図9は、第2の変形例に係る魚の仮想オブジェクトの配置方法の一例を示す図である。図9の左側は、生簀空間を上面から眺めた図である。図7では、4方向の仮想カメラそれぞれから同じ位置に複数の仮想オブジェクトが一列に配置されている。また、図7では、各仮想オブジェクトの大きさは同じである。図7では、推定部152が、生簀空間における各仮想オブジェクトの位置を仮想カメラの位置から徐々に離していき、仮想カメラに対応する撮像装置によって撮像された撮像画像に撮像された各魚の大きさと同程度の大きさに見える位置まで各仮想オブジェクトを移動させる。推定部152は、4方向から同様のことを行い、4方向から見て最もマッチした位置に各仮想オブジェクトを配置する。推定部152は、4方向から見たマッチング度合を示す数値が所定の閾値以下である場合には、各方向から見た位置に各仮想オブジェクトを配置する。
〔4.効果〕
 上述したように、実施形態に係る情報処理装置100は、取得部151と推定部152を備える。取得部151は、複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、複数の異なる方向それぞれから撮像された複数の撮像画像を取得する。推定部152は、取得部151によって取得された各撮像画像に対応する撮像装置から各撮像画像に撮像された各魚までの距離に基づいて、各撮像画像に撮像された各魚の生簀における位置を示す第1魚位置情報を撮像画像ごとに推定し、生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約し、第2魚位置情報に基づいて、複数の魚に関する情報を推定する。
 これにより、情報処理装置100は、複数の魚が所在する生簀を撮像した撮像画像から、生簀に所在する複数の魚それぞれの位置、大きさ、向き、および尾数を精度よく推定することができる。したがって、情報処理装置100は、画像から生簀に所在する複数の魚に関する情報を精度よく推定することができる。
 また、推定部152は、各撮像画像のうち各魚が撮像された領域である魚領域の面積に基づいて、複数の第1魚位置情報の中から魚領域の面積が最も大きい撮像画像に対応する第1魚位置情報を第2魚位置情報として選択することにより、複数の第1魚位置情報を第2魚位置情報に集約する。
 ここで、魚領域の面積が小さい撮像画像に対応する第1魚位置情報よりも、魚領域の面積が大きい撮像画像に対応する第1魚位置情報の方が、第1魚位置情報の精度が高いと考えられる。これにより、情報処理装置100は、複数の第1魚位置情報の中からより精度の高い第1魚位置情報を第2魚位置情報として選択することができる。
 また、推定部152は、生簀に対応する仮想空間における第2魚位置情報に対応する位置に各魚に対応する仮想オブジェクトが配置された仮想空間を複数の撮像装置それぞれに対応する複数の仮想カメラそれぞれによって撮像した複数の仮想画像を生成し、各仮想画像と各仮想画像に対応する各撮像画像との誤差が小さくなるように、各仮想オブジェクトに関するパラメータの値を変化させ、変化させた後の各仮想オブジェクトに関するパラメータの値に基づいて、複数の魚に関する情報を推定する。
 これにより、情報処理装置100は、各仮想画像と各仮想画像に対応する各撮像画像との比較に基づいて、複数の魚が所在する生簀を撮像した撮像画像から、生簀に所在する複数の魚それぞれの位置、大きさ、向き、および尾数を精度よく推定することができる。
 また、各仮想オブジェクトに関するパラメータの値は、各仮想オブジェクトの位置を示す値、各仮想オブジェクトの向きを示す値、または、各仮想オブジェクトの大きさを示す値である。
 これにより、情報処理装置100は、複数の魚が所在する生簀を撮像した撮像画像から、生簀に所在する複数の魚それぞれの位置、大きさ、向き、および尾数を精度よく推定することができる。
 また、推定部152は、各撮像画像のうち少なくとも一の撮像画像に対応する仮想画像に対する物体検出を行い、仮想画像における各仮想オブジェクトを検出し、検出された各仮想オブジェクトを囲むバウンディングボックスの大きさに基づいて、検出された各仮想オブジェクトの姿勢に関する姿勢情報を推定し、姿勢情報に基づいて、複数の魚に関する情報を推定する。
 これにより、情報処理装置100は、例えば、各魚の大きさをより精度よく推定することができる。したがって、情報処理装置100は、複数の魚に関する情報の推定精度を向上させることができる。
 また、複数の魚に関する情報は、生簀における各魚の位置を示す魚位置情報、各魚の向きを示す魚向き情報、各魚の大きさを示す魚サイズ情報、または、複数の魚の数を示す尾数情報である。
 これにより、情報処理装置100は、養殖業者に対して、出荷サイズの魚が何尾いるかという情報を提供可能とすることができる。
〔5.ハードウェア構成〕
 また、上述してきた実施形態に係る情報処理装置100は、例えば図10に示すような構成のコンピュータ1000によって実現される。図10は、情報処理装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
 CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
 HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
 CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
 メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
 例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部150の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
 以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔6.その他〕
 また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
 また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
 100 情報処理装置
 110 通信部
 120 記憶部
 130 入力部
 140 出力部
 150 制御部
 151 取得部
 152 推定部
 153 出力制御部

Claims (8)

  1.  複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、前記複数の異なる方向それぞれから撮像された複数の撮像画像を取得する取得手順と、
     前記取得手順によって取得された各撮像画像に対応する前記撮像装置から各撮像画像に撮像された各魚までの距離に基づいて、各撮像画像に撮像された各魚の前記生簀における位置を示す第1魚位置情報を前記撮像画像ごとに推定し、前記生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約し、前記第2魚位置情報に基づいて、前記複数の魚に関する情報を推定する推定手順と、
     をコンピュータに実行させる情報処理プログラム。
  2.  前記推定手順は、
     各撮像画像のうち各魚が撮像された領域である魚領域の面積に基づいて、前記複数の第1魚位置情報の中から前記魚領域の面積が最も大きい前記撮像画像に対応する前記第1魚位置情報を前記第2魚位置情報として選択することにより、前記複数の第1魚位置情報を前記第2魚位置情報に集約する、
     請求項1に記載の情報処理プログラム。
  3.  前記推定手順は、
     前記生簀に対応する仮想空間における前記第2魚位置情報に対応する位置に各魚に対応する仮想オブジェクトが配置された前記仮想空間を前記複数の撮像装置それぞれに対応する複数の仮想カメラそれぞれによって撮像した複数の仮想画像を生成し、各仮想画像と各仮想画像に対応する各撮像画像との誤差が小さくなるように、各仮想オブジェクトに関するパラメータの値を変化させ、変化させた後の各仮想オブジェクトに関するパラメータの値に基づいて、前記複数の魚に関する情報を推定する、
     請求項1に記載の情報処理プログラム。
  4.  各仮想オブジェクトに関するパラメータの値は、各仮想オブジェクトの位置を示す値、各仮想オブジェクトの向きを示す値、または、各仮想オブジェクトの大きさを示す値である、
     請求項3に記載の情報処理プログラム。
  5.  前記推定手順は、
     各撮像画像のうち少なくとも一の撮像画像に対応する前記仮想画像に対する物体検出を行い、前記仮想画像における各仮想オブジェクトを検出し、検出された各仮想オブジェクトを囲むバウンディングボックスの大きさに基づいて、検出された各仮想オブジェクトの姿勢に関する姿勢情報を推定し、前記姿勢情報に基づいて、前記複数の魚に関する情報を推定する、
     請求項3に記載の情報処理プログラム。
  6.  前記複数の魚に関する情報は、前記生簀における各魚の位置を示す魚位置情報、各魚の向きを示す魚向き情報、各魚の大きさを示す魚サイズ情報、または、前記複数の魚の数を示す尾数情報である、
     請求項1に記載の情報処理プログラム。
  7.  複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、前記複数の異なる方向それぞれから撮像された複数の撮像画像を取得する取得部と、
     前記取得部によって取得された各撮像画像に対応する前記撮像装置から各撮像画像に撮像された各魚までの距離に基づいて、各撮像画像に撮像された各魚の前記生簀における位置を示す第1魚位置情報を前記撮像画像ごとに推定し、前記生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約し、前記第2魚位置情報に基づいて、前記複数の魚に関する情報を推定する推定部と、
     を備える情報処理装置。
  8.  情報処理装置が実行するプログラムにより実現される情報処理方法であって、
     複数の魚が所在する生簀を複数の異なる方向それぞれから撮像する複数の撮像装置から、前記複数の異なる方向それぞれから撮像された複数の撮像画像を取得する取得工程と、
     前記取得工程によって取得された各撮像画像に対応する前記撮像装置から各撮像画像に撮像された各魚までの距離に基づいて、各撮像画像に撮像された各魚の前記生簀における位置を示す第1魚位置情報を前記撮像画像ごとに推定し、前記生簀における所定の位置から所定の範囲内の位置に対応する複数の第1魚位置情報を一の魚の位置を示す第2魚位置情報に集約し、前記第2魚位置情報に基づいて、前記複数の魚に関する情報を推定する推定工程と、
     を含む情報処理方法。
PCT/JP2023/031274 2022-11-01 2023-08-29 情報処理プログラム、情報処理装置及び情報処理方法 WO2024095584A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022175733A JP2024066259A (ja) 2022-11-01 2022-11-01 情報処理プログラム、情報処理装置及び情報処理方法
JP2022-175733 2022-11-01

Publications (1)

Publication Number Publication Date
WO2024095584A1 true WO2024095584A1 (ja) 2024-05-10

Family

ID=90930175

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/031274 WO2024095584A1 (ja) 2022-11-01 2023-08-29 情報処理プログラム、情報処理装置及び情報処理方法

Country Status (2)

Country Link
JP (1) JP2024066259A (ja)
WO (1) WO2024095584A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003250382A (ja) * 2002-02-25 2003-09-09 Matsushita Electric Works Ltd 水棲生物の成育状態監視方法及びその装置
JP2004265222A (ja) * 2003-03-03 2004-09-24 Nippon Telegr & Teleph Corp <Ntt> インタフェース方法、装置、およびプログラム
WO2018061925A1 (ja) * 2016-09-30 2018-04-05 日本電気株式会社 情報処理装置、長さ測定システム、長さ測定方法およびプログラム記憶媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003250382A (ja) * 2002-02-25 2003-09-09 Matsushita Electric Works Ltd 水棲生物の成育状態監視方法及びその装置
JP2004265222A (ja) * 2003-03-03 2004-09-24 Nippon Telegr & Teleph Corp <Ntt> インタフェース方法、装置、およびプログラム
WO2018061925A1 (ja) * 2016-09-30 2018-04-05 日本電気株式会社 情報処理装置、長さ測定システム、長さ測定方法およびプログラム記憶媒体

Also Published As

Publication number Publication date
JP2024066259A (ja) 2024-05-15

Similar Documents

Publication Publication Date Title
US9773302B2 (en) Three-dimensional object model tagging
JP6694039B1 (ja) 魚体サイズ算出装置
KR102316056B1 (ko) 화상 처리장치, 화상 처리방법 및 프로그램
JP5538617B2 (ja) 複数カメラのキャリブレーション用の方法および構成
JP6735592B2 (ja) 画像処理装置及びその制御方法、画像処理システム
US10515291B2 (en) Template creation device and template creation method
JP6125188B2 (ja) 映像処理方法及び装置
JP6024658B2 (ja) 物体検出装置、物体検出方法及びプログラム
CN117115256A (zh) 图像处理系统
JP7032871B2 (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
US11915430B2 (en) Image analysis apparatus, image analysis method, and storage medium to display information representing flow quantity
JP2013500536A5 (ja)
JP6020439B2 (ja) 画像処理装置、撮像装置、および画像処理プログラム
JP7285834B2 (ja) 三次元再構成方法および三次元再構成装置
JP2021177399A (ja) 情報処理装置、制御方法、及びプログラム
US11170246B2 (en) Recognition processing device, recognition processing method, and program
JP6817742B2 (ja) 情報処理装置およびその制御方法
KR20110133416A (ko) 멀티 스레드 방식을 기반으로 하는 3d 디스플레이를 위한 비디오 처리 방법
EP3309750B1 (en) Image processing apparatus and image processing method
WO2024095584A1 (ja) 情報処理プログラム、情報処理装置及び情報処理方法
CN108062741B (zh) 双目图像处理方法、成像装置和电子设备
KR20210025175A (ko) 전자 장치 및 전자 장치의 제어 방법
JP7341712B2 (ja) 画像処理装置、画像処理方法、撮像装置、およびプログラム
JP6751663B2 (ja) 画像処理装置、画像処理方法
JP6137929B2 (ja) 情報処理装置および情報処理方法