Pattern analysis of nets used in fish farming

Hello

I am working on a small project at my university regarding automatic analysis of pattern deviations( holes, rifts, etc…) in nets used in fish farming.
I dont have much time to devote to this project, and have only worked a little with image analysis earlyer, so im quite new at this game.
My only experience with image analysis/processing is LabVIEW programs such as NI Vision Builder, but that’s pretty much it.

Therefore i am wondering if anyone here could recomend any not to time consuming or easy to use program or app where this could be achieved. Any help or tips would be very appriciated. :smile:

Here is an typical image i would be working with:

Hello @magnhel and welcome to the forum!

What do you exactly need to do? Find the location of holes/rifts in the image? Count them?

ignacio

Thanks @iarganda

I only need to detect holes/rifts in a given image. A net is typically 70m in diameter and 100m deep, formed like a cylinder, so a lot of images would be neccecary for a thourough search.

Lets say, if 800 images is needed to “scan” the outisde surface of then net for deviations, i only need a program that would detect if there is some form for hole/rift in any image.
Location in the image or any other factors, like number of deviations is not important in this case.

Making a program that shuffles through a folder of images is not the problem here, only the part of detecting if there is any holes/rifts present.:relaxed:

Magnus

Magnus,

it would be quite helpful to see images with typical net-defects.

Best

Herbie

Hi @anon96376101

Defects will typically be from what you can see on the added image and bigger holes

Magnus

Magnus,

I guess the image with the defect is an enlargement and that your images are of the size of the intact net posted earlier (or even larger).

Therefore, global methods, e.g. Fourier-analyses, are not promising. Most probably you need to analyze the nets regionally of locally, e.g. by projecting local image excerpts along the net lines …

Good luck

Herbie

Magnus,

here is what I get without any refinement by applying “Analyze Particles”:

Of course you have either to only include sufficient “big” particles, or better, you must loop through the ROIs in the ROI-manager and look for suspicious ones.

HTH

Herbie

2 Likes

Hi @magnhel

I used KNIME Image Processing to get a segmentation of the net and then append a class label depending on the size of the holes in the net.

This is my segmentation:

And this is the net-quality prediction:

Here you can download the workflow (66.3 KB).

6 Likes

@tibuch Thanks for sharing this nice workflow.

Note that I had to manually configure the Interactive Annotator (in the voronoi and remove border meta node) to make it work on my system.
Furthermore, I exchanged the Image Reader by the Image Reader (Table) node in order to read in the image from its URL directly (instead of downloading it and selecting it manually):

I think the Image Reader (Table) would also be the more likely node to use in case of an analysis of several hundreds of images.

5 Likes

@imagejan thank you for optimizing my workflow! Feel free to replace my link :slight_smile:

@tibuch thank you for posting the example KNIME program. I am very interested in this workflow (not for fishing nets, but for similar apps that count objects and classify).

I made a “simple” version of ‘netAnalysis’ netAnalysisSimple.zip (1.2 MB)

I can threshold, perform connected components and get a table of objects with features easily! And the biggest one should be the part of the net with a hole. My question is, how do I get a view that relates the individual components back to the image??

I am used to the IJ world, in which I would run the particle analyzer, then I can select my ROIs in the ROI manager and they get highlighted on the image… what is the equivalent in KNIME?

Thanks

Use the Interactive Segmentation View node. You can feed it with your original image and with a labeling image (i.e. your segmentation) and display the segmented object using a random color table or a bounding box renderer, or both.

@tibuch I think the workflow was too big as each node had been executed, and included processed images. I reset everything and the zip file was much smaller. Does it work now?? I am very interested in discussing KNIME more on this forum, and sharing KNIME workflows, so I want to make sure I understand why my link didn’t work the first time.

Thanks

It wasn’t too big, you just had a copy-paste error in the line, leading to a broken link. I had fixed the link, then you modified the link to point to the smaller file, then @gab1one changed it back to point to the original workflow (see the edit history of your previous post, preferably in raw mode) :slightly_smiling:

1 Like

If you want to combine the individual Segments from the Segment Features Node back to Labeling you can use the GroupBy-Node.

  1. Select Column to Group:

  2. Select Aggregation Column:

  3. Configure Aggregation Settings (Button in last column)

This node returns the reconstructed labeling from the input table.

If you want to select labels manually you can use the Interactive Labeling Editor. There you can select labels by hand and add a class for each label.

Here is the netAnalysisSimple.zip (1.1 MB) with the two options.

5 Likes

Thanks for your help. I think I will have to spend some time reading over the KNIME tutorials to gain a better understanding of how the labelling works.

4 Likes

Thanks for all the help, i hope to get some results with KNIME :smile:

Magnus

4 Likes