Vis enkel innførsel

dc.contributor.advisorLudvigsen, Martin
dc.contributor.advisorSchellewald, Christian
dc.contributor.advisorVolden, Rune
dc.contributor.authorBarstein, Karoline Hokstad
dc.date.accessioned2021-11-20T18:20:21Z
dc.date.available2021-11-20T18:20:21Z
dc.date.issued2021
dc.identifierno.ntnu:inspera:78668897:34094931
dc.identifier.urihttps://hdl.handle.net/11250/2830560
dc.description.abstractBevaring av fiskevelferd er et omfattende tema i oppdrettsnæringen. En industriell laksemerd kan inneholde så mange som 200 000 fisk, og det er utfordrende å overvåke velferden til denne mengden enkeltdyr. Manuelle observasjoner og målinger av atferd, miljøfaktorer og fiskehelse har vært dominerende. Oppdrettslaksproduksjonen utvides imidlertid fortsatt, og det er behov for grundigere og mer effektive metoder. Et problem er ineffektiviteten ved manuell operasjon, et annet er mangelen på en fullstendig romlig og tidsmessig oversikt over merden. De fleste laksemerder i dag har undervannskameraer installert brukt til manuelle observasjoner, og flere indikatorer for fiskevelferd kan overvåkes visuelt. Dette kan utnyttes av datasynteknologi. Undervannsbilder er underlagt komplekse utfordringer, men utviklingen innen datasyn og dyplæringsteknologi viser muligheter til å bruke slike metoder for praktiske formål, for bedre og mer effektiv overvåkning av fiskevelferd. Denne oppgaven foreslår et proof-of-concept for estimering av svømmehastighet for oppdrettslaks på et datasett med stereovideo fra industrielle laksemerder. Dette ved å kombinere objektdeteksjon ved dyp læring, IOU-basert objektsporing og dybdeestimering av bildescener ved semi-global blokkmatching. En rekke laksevelferdsindikatorer ble evaluert og klassifisert ut fra deres visuelle og tidsmessige detekterbarhet. Svømmeaktivitet, eller nærmere bestemt svømmehastighet, ble ansett som den mest gjennomførbare indikatoren å studere, gitt datasettet. Spredning, lav kontrast, fargeforvrengninger og lysrefleksjoner representerer ytterligere utfordringer for synsbaserte teknikker under vann, sammenlignet med terrestriske applikasjoner. Svømme-hastigheten ble beregnet ved å spore hver fisk ved å måle posisjonen til et fast punkt på fiskekroppen. Midtpunktet for deteksjonsboksene fungerte som dette faste punktet. Fiskeanatomi ble studert for å bestemme hvilket objekt som skulle spores, sammen med hensyn til begrensningene i selve datasettet, dybdeestimering og gjenstandsdeteksjon. Kaudalfinnen så ut til å være det beste valget. For objektgjenkjenning ble modellen YOLOv4 valgt på grunn av parallelle databehandlingsmuligheter på GPU og overlegen ytelse når det gjelder hastighet og nøyaktighet. Bilder ble hentet fra videoene og annotert. Hvert treningsbilde ble augmentert fire ganger, noe som resulterte i et treningssett med fem versjoner av hvert bilde. De beste nettverksvektene fra treningen ble lagret og brukt til den endelige modellen. For å oppnå 3D-posisjoner for laksen ble stereomatching ved semi-global blokkmatching implementert. Fra de resulterende dybdeestimatene kunne 3D-posisjonen til kaudalfinner estimeres ved å bruke det gjennomsnittlige dybdeestimatet til et forhåndsdefinert indre midtområde av deteksjonsboksen og midtpunktet for deteksjonsboksen. Deteksjoner med et gjennomsnittlig dybdeestimat i dette indre området over en viss terskel, som indikerer en ikke-jevn dybdeestimering av finneflaten, ble forkastet. Den foreslåtte objektsporingsmetoden var basert på overlapp mellom deteksjonsbokser, noe som betyr at ingen bilde- eller bevegelsesinformasjon var nødvendig. Algoritmen ble modifisert til å tillate "hull" mellom deteksjoner i påfølgende bilder. De enkelte komponentene ble kombinert for å danne en endelig eksperimentell pipeline for å estimere laksens svømmehastighet. Finneposisjoner i 3D ble sporet i to videoeksperimenter. For hvert 3D-spor ble gjennomsnittshastigheten beregnet ved hjelp av avstanden mellom påfølgende punkter, antall bilder mellom hvert bestemte punkt og bildefrekvensen til videoene. Videre ble den gjennomsnittlige lakseshastigheten og standardavviket beregnet for hvert eksperiment. Deteksjonsmodellen ble testet på hastighet og ytelse. Modellen hadde en ytelse på 87.49\% mAP@0.50 etter trening på 208 originale bilder. For 3D-rekonstruksjonsdelen var den totale reprojeksjonsfeilen for kamerakalibreringen 0,2234 piksler. Videre viste dybdeestimeringene forbedring etter påføring av et vektet minste kvadrat-filter. Hull i dybdeestimeringene ble fjernet, og overflatene ble jevnere. Målinger av kjente lengder i rekonstruerte kalibreringsbilder samsvarte med de sanne størrelsene. Sporingsalgoritmen ble testet på YOLOv4-deteksjonene. Ved å bruke en moderat grense for IOU-overlapp oppnådde vi pålitelige spor. Maksimal og gjennomsnittlig sporlengde økte når det ble tillatt hull, og antall spor ble redusert. Den endelige sporingsalgoritmen var gjenstand for noen problemer forårsaket av deteksjonsresultatene, for eksempel spor konstruert av falske positive deteksjoner og splittede spor forårsaket av falske negative deteksjoner. Visualiseringer og 3D-plott av spor fra eksperimentene med den endelige pipelinen, sammen med målinger av gjennomsnittshastighet og standardavvik over alle spor i hver video, ble analysert. Gjennomsnittlig laksesvømmehastighet ble målt til henholdsvis 0,5479 ms-1 og 0,6561 ms-1, og standardavvikene til 0,3175 ms-1 og 0,3149 ms-1. Uskarphet var den viktigste bidragsyteren til feil i den endelige pipelinen for estimering av svømmehastighet. Objektdeteksjonsmodellen detekterte kaudalfinner i sanntid. Modifiseringen av sporingsalgoritmen induserte en forbedring i sporlengden og reduserte antall spor, noe som indikerer at sporene som ble splittet på grunn av hull i den opprinnelige algoritmen, ble slått sammen i den modifiserte algoritmen. For sporingsalgoritmen var kameraets egenbevegelse, som påvirker IOU-overlapp, som det største problemet. Et neste steg kan være å inkludere en bevegelsesmodell for egenbevegelse eller bruke en algoritme som tar hensyn til bildeinformasjon. Samlet sett oppnådde vi en eksperimentell pipeline som var i stand til å estimere laksens svømmehastighet i de to eksperimentene, ved å fjerne utilstrekkelige deteksjoner og dybdeestimeringer fra sporene. 3D-plott av spor samsvarte med den observerte bevegelsen til fisken i forhold til kameraet. Gjennomsnittlige hastigheter beregnet fra sporene var rimelige for svømmehastigheten til oppdrettslaks. Som et proof-of-concept viser systemet at det er stort potensial i å anvende og kombinere velkjente visjonsbaserte teknikker for å overvåke fiskevelferd i industrielle laksemerder, og at bildekvalitet er den viktigste begrensningen per i dag.
dc.description.abstractPreserving fish welfare is an extensive issue in the fish farming industry. An industrial salmon sea cage can contain as many as 200 000 fish, and monitoring the welfare of this amount of individual animals is challenging. Manual observations and measurements of behavior, environmental factors, and fish health have been predominant. However, farmed salmon production is still expanding, and there is a need for more thorough and efficient methods. One problem is the inefficiency of manual operations, another is the lack of a complete spatial and temporal overview of the sea cage. Most sea cages today have underwater cameras installed used for manual observations, and several indicators of fish welfare can be monitored visually. This can be exploited by computer vision technology. Underwater images are subject to complex challenges, but the evolution in computer-vision and deep-learning technology shows promise for applying such methods for practical purposes to better and more efficiently monitor fish welfare. This thesis proposes a proof-of-concept for estimating farmed salmon swimming velocity on a dataset of stereo video from industrial sea cages by combining deep-learning object detection, IOU-based object tracking, and image scene depth estimation by semi-global block matching. A number of salmon welfare indicators were evaluated and classified based on their visual and temporal detectability. Swimming activity, or more specifically swimming velocity, was considered as the most feasible indicator to study, given the dataset. Scattering, low contrast, color distortions, and light reflections represent additional challenges for vision-based techniques underwater, compared to terrestrial applications. Swimming velocity was to be estimated by tracking each fish by measuring the position of a fixed point on the fish body. The middle point of object detection bounding boxes served as this fixed point. Fish anatomy was studied to decide which object to track, together with considerations of the limitations of the dataset itself, depth estimation, and object detection. The caudal fin appeared to be the best choice. For object detection, the YOLOv4 model was chosen due to its GPU parallel computing capabilities and its superior performance in terms of speed and accuracy. Image frames were extracted from the videos and annotated. Each training image was augmented four times, resulting in a training set with five versions of each image. The best-performing network weights through the training were saved and used for the final model. To obtain 3D positions for the salmon, stereo matching by semi-global block matching was implemented. From the resulting disparity maps, the 3D position of caudal fins could be estimated by using the average disparity value of a predefined inner middle area of the bounding box and the center point of the bounding box. Detections with an average disparity value in this inner area above a certain threshold, indicating a non-smooth depth estimation of the fin surface, were discarded. The proposed object tracking method was based on overlap between detection boxes, meaning no image or motion information was required. The algorithm was modified to allow "gaps" between detections in consecutive frames. The individual components were combined to form a final experimental pipeline to estimate salmon swimming velocity. The 3D caudal fin positions were tracked in two video experiments. For each 3D track, the mean velocity was calculated using the distance between consecutive points, the number of frames between each certain point, and the frame rate of the videos. Further, the mean salmon swimming velocity and standard deviation were calculated for each experiment. The detection model was tested on speed and performance. The model performed at 87.49\% mAP@0.50 after training on 208 original images. For the stereo 3D reconstruction part, the total reprojection error of the camera calibration was 0.2234 pixels. Further, the disparity maps showed improvement after applying a weighted least squares filter. Speckles were removed, and surfaces appeared smoother. Measurements of known sizes in reconstructed calibration images corresponded with the ground truth sizes. The tracking algorithm was tested on the YOLOv4 detections. By using a moderate IOU overlap threshold, we achieved reliable tracks. The maximum and average track length increased when allowing gaps and the number of total tracks was reduced. The final tracking algorithm was subject to some issues caused by the detection results, e.g., tracks constructed of false positives and split tracks caused by false negatives. Visualizations and 3D plots of tracks from the final pipeline experiments, together with measurements of mean velocity and standard deviation over all tracks in each video, were analyzed. The mean salmon swimming velocities were measured to 0.5479 ms-1 and 0.6561 ms-1, and the standard deviations to 0.3175 ms-1 and 0.3149 ms-1, respectively. Motion blur was the main contributor to errors in the final pipeline of swimming velocity estimation. The object detection model performed sufficiently on detecting caudal fins in real-time. The modification of the tracking algorithm to allow gaps induced an improvement in the length of tracks and decreased the number of tracks, indicating that tracks split due to gaps in the original algorithm were merged in the modified algorithm. For the tracking algorithm, camera egomotion affecting IOU overlap appeared as the largest issue. A next step might be to include a motion model for the egomotion or use an algorithm that considers image information. Overall, by removing insufficient detections and disparity estimations from the tracks, we obtained an experimental pipeline that was able to estimate salmon swimming velocities in the two experiments conducted. 3D plots of tracks corresponded with the observed motion of the fish relative to the camera. The mean velocities computed from the tracks were reasonable for the swimming velocity of farmed salmon. As a proof-of-concept, the system shows that there is large potential in applying and combining well-known vision-based techniques for monitoring fish welfare in industrial sea cages and that image quality is the main limitation as of today.
dc.languageeng
dc.publisherNTNU
dc.titleTowards automated welfare monitoring of farmed salmon exploiting deep learning and computer vision
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel