Jason Parham (bluemellophone@gmail.com)
2020-04-27 17:13:31

@Jason Parham has joined the channel

Sara Beery (sara.beery@gmail.com)
2020-04-27 17:14:22

@Sara Beery has joined the channel

Jason Parham (bluemellophone@gmail.com)
2020-04-27 17:16:07

set the channel description: We all need help sometimes: this is a place to advertise large projects and citizen science tasks for research in conservation

Subhransu Maji (smaji@cs.umass.edu)
2020-04-27 17:18:32

@Subhransu Maji has joined the channel

Jon Van Oast (jon@wildme.org)
2020-04-27 17:23:32

@Jon Van Oast has joined the channel

Eric Fegraus (efegraus@conservation.org)
2020-04-27 17:34:22

@Eric Fegraus has joined the channel

Jason Parham (bluemellophone@gmail.com)
2020-04-27 17:47:51

has renamed the channel from "helpneeeded" to "helpneeded"

😂 Sara Beery
😳 Jason Parham
Jason Parham (bluemellophone@gmail.com)
2020-04-27 17:59:06

Wild Me has an ongoing project to ID a large population of Grevy’s Zebra. Wild Me has been working with the Grevy’s Zebra Trust to track the resident animal population in Kenya. The project organizes the Great Grevy’s Rally, a two-day event where a large team of volunteer photographers drive around looking for this endangered species. The most recent rally (GGR 2020) completed in January and we need help processing the images. The 2020 rally was a repeat of rallies in 2016 and 2018, where a combined 150,000 images of Grevy’s zebra have been collected. Our goal is to automate as much of the GGR-2020 processing as possible with Machine Leaning algorithms, which we need ground-truth data to validate our accuracy.

❤️ Sara Beery
:zebra_face: Sara Beery, Jon Van Oast
Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:01:18

For those who are interested, we will be holding a 1-hour training session this week to walk through the machine learning data annotation tools and explain the scope of the work ahead. We are looking for volunteers who are willing to donate any amount of their time, day or night, towards the conservation of this species.

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:01:42

If you are interested in volunteering, please fill out your availability here: https://doodle.com/poll/hfb35bb32ka6xsyf

doodle.com
Oisin Mac Aodha (macaodha@caltech.edu)
2020-04-27 18:04:01

@Oisin Mac Aodha has joined the channel

Holger Klinck (hk829@cornell.edu)
2020-04-27 18:04:55

@Holger Klinck has joined the channel

Sara Beery (sara.beery@gmail.com)
2020-04-27 18:23:04

@Jason Parham Do you want us to share this to others? Or is it semi-private for now?

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:23:51

Yes, please

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:24:23

There is a high bar for quality, but participating in the training session should help to standardize the results

Siyu Yang (yasiyu@microsoft.com)
2020-04-27 18:25:40

@Siyu Yang has joined the channel

Sara Beery (sara.beery@gmail.com)
2020-04-27 18:27:07

Cool. I don't have a lot of bandwidth, but I'll try to help out with the cycles I have 🙂

Siyu Yang (yasiyu@microsoft.com)
2020-04-27 18:29:37

Hi @Jason Parham, just to be super clear, is the task for people to ID individual zebras from a database of previous sightings?

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:31:04

We will be working through a large series of tasks but will culminate in doing a prioritized ID of individual zebras based on their appearance. The system will compare the stripes of the different sightings and show pairs with high correspondence to a user for review.

Sreejith Menon (smenon59@bloomberg.net)
2020-06-24 10:16:18

Sorry i missed these. Is there anything that i can help with?

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:32:24

we will start with bounding box regression for detection, then box metadata, then do ID at the end once we filter

👍 Siyu Yang, Sara Beery
Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:33:09

This is what ID will use to compare sightings. Credit: HotSpotter by Dr. Jon Crall.

Sara Beery (sara.beery@gmail.com)
2020-04-27 18:33:19

What is "box metadata" here?

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:33:38

species, viewpoint, quality and other siimilar metrics

👍 Sara Beery
Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:33:40

**similar

Siyu Yang (yasiyu@microsoft.com)
2020-04-27 18:34:36

Would anyone (without zoology training) be able to do all the steps?

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:34:49

yes, absolutely!

Jason Parham (bluemellophone@gmail.com)
2020-04-27 18:35:06

it takes a bit to build confidence, but that’s what the training session(s) will be for

👍 Siyu Yang
Megan Cromp (megan@keyconservation.org)
2020-04-27 19:32:04

@Megan Cromp has joined the channel

Suzanne Stathatos (suzanne.stathatos@gmail.com)
2020-04-27 21:05:44

@Suzanne Stathatos has joined the channel

Ben Koger (benkoger@gmail.com)
2020-04-28 04:36:07

@Ben Koger has joined the channel

Mike Trizna (triznam@si.edu)
2020-04-29 14:45:14

@Mike Trizna has joined the channel

Jason Parham (bluemellophone@gmail.com)
2020-04-30 01:31:11

Wild Me will be hosting a two-hour training session for the zebra “help needed” project starting at 11AM Pacific tomorrow morning, Thursday April 30th. The plan is to spend the first hour going over the entire tutorial and then the second hour will be a back-to-back repeat of the same content (starting at noon Pacific) just in case somebody cannot attend at 11AM. Below are links to the Google Hangouts for each session:

Wild Me Zebra Training Session A - 11 AM Pacific - https://meet.google.com/bpd-ynky-env
Wild Me Zebra Training Session B - Noon Pacific - https://meet.google.com/nfy-gocb-obo

Please plan to attend with a computer so that you can follow along the display at a higher resolution. We thank all of the volunteers in advance for contributing their time to this project

meet.google.com
meet.google.com
Ștefan Istrate (stefan.istrate@gmail.com)
2020-04-30 04:58:33

@Ștefan Istrate has joined the channel

Zac Winzurk (zwinzurk@asu.edu)
2020-04-30 13:08:14

@Zac Winzurk has joined the channel

Jason Parham (bluemellophone@gmail.com)
2020-04-30 18:17:26

Thank you to everybody who attended the training session today. If you missed the training and still wanted to volunteer, I will be hosting a make-up session at 10AM Pacific Monday morning next week.

🙌 Zac Winzurk
👍 Sreejith Menon
Zac Winzurk (zwinzurk@asu.edu)
2020-04-30 22:37:22

Hi Jason! Is there a Google Hangouts link for the make-up session?

Jason Parham (bluemellophone@gmail.com)
2020-04-30 18:17:46

For those who attended a session today and did not receive the work link via email, please PM me on Slack

Malte Pedersen (mape@create.aau.dk)
2020-05-05 02:21:22

@Malte Pedersen has joined the channel

Amrita Gupta (agupta375@gatech.edu)
2020-05-05 12:21:12

@Amrita Gupta has joined the channel

Rose Hendrix (rosehe@vulcan.com)
2020-05-05 13:33:53

@Rose Hendrix has joined the channel

David Healey (david.w.healey@gmail.com)
2020-05-07 14:34:55

@David Healey has joined the channel

Hannah Kerner (hkerner@umd.edu)
2020-05-07 15:49:57

@Hannah Kerner has joined the channel

Ankita Shukla (ankitas@iiitd.ac.in)
2020-05-13 02:41:33

@Ankita Shukla has joined the channel

Tee R. (taylornroberts2009@gmail.com)
2020-07-02 13:44:39

Hi are there any projects/things for beginners? I don't have any zoology/biology experience but am willing to learn what I can!

Sara Beery (sara.beery@gmail.com)
2020-07-02 13:46:14

I think @Jason Parham still needs help with the Grevy's Zebra data! It's a good way to get familiar with the types of tasks we're asking models to do, and their associated challenges.

🙌 Jon Van Oast
Tee R. (taylornroberts2009@gmail.com)
2020-07-24 12:31:42

i had a thought for a portfolio project, tracking the conditions of certain organisms, for example let's use a bear. So looking at things like its mother's health, number of siblings, food quality (and quantity) and then seeing which bears survive to adulthood. Then tracking the reasons most don't survive or something. Is there already something like this out there? Thanks.

Sara Beery (sara.beery@gmail.com)
2020-07-24 12:39:34

This paper that just came out seems kinda relevant? https://www.pnas.org/content/early/2020/07/02/1922097117

PNAS
😃 Tee R.
🙌 Jon Van Oast
Tee R. (taylornroberts2009@gmail.com)
2020-07-24 12:46:58

I'll check this out, thanks! This has more focus on human activity than I was thinking but it's the same problem.

Tee R. (taylornroberts2009@gmail.com)
2020-07-24 12:32:01

guess it could work for plants too, might be easier, plants are easier to monitor

🌿 Sara Beery
Tee R. (taylornroberts2009@gmail.com)
2020-08-21 20:51:05

Does anyone have any current projects or anything that they need help with?

Petar Gyurov (pgyurov93@gmail.com)
2021-01-11 04:13:28

Hi guys, I have a couple of questions. I am training a Tensorflow model (Faster R-CNN Inception ResNet V2 640x640) on my PC:

  • I had to lower the batch size to 2 because I kept getting OOM errors -- I have a GTX 1070 (8GB VRAM) -- does that seem normal? Isn't that an exceedingly small batch size? I am using a tiny training dataset too (~1500 imgs)

  • Any recommendations on free/premium solution for running a simple training pipeline in the cloud?

  • Can I still use this model if I use smaller images (i.e.: smaller than 640x640)?


My estimated time to finish a training job is at 33hrs at the moment 😞

Lukas Liebel (lukas.liebel@tum.de)
2021-01-11 09:46:26

Hey. Having to use excessively small batches is somewhat common when training large models (which the original authors often trained on huge servers). Having said that, here are a few quick thoughts:

  • the number of images in your dataset doesn't affect the memory demands on your GPU

  • 640x640 is quite a large patch size. At least for semantic segmentation tasks which I'm usually working on. Maybe that's different here since you're doing object detection, right? However, as long as the network is fully convolutional, the training patch size should be variable. Just try something smaller (maybe in the ballpark of 256^2). But I'm quite sure there are some object detection people here that can prove me wrong 😄

  • 33 h for training a large network from scratch is not a lot

  • How do you determine when training is "done"? Seems like your only guidance is some maximum number of iterations/epochs in someones code (who apparently used a different set of hyperparameters)

  • Take care to adjust other hyperparameters accordingly if you use a different batch size (most prominently the LR). Also you may get better results when turning off batch norm when training with small batches.

  • I don't have any real experience with cloud services for DL but maybe a Google Collab instance with a GPU backend could be a starting point? Not sure how suitable that is for training though. Again, I'm sure there are people around here with first-hand experience that may be able to provide further info 🙂


Hope some of that makes sense and you'll be able to solve your issues and get that net up and running 🙂 Cheers

Petar Gyurov (pgyurov93@gmail.com)
2021-01-11 09:56:56

Hi Lukas. Thanks for the response -- it's very useful!

Seems like your only guidance is some maximum number of iterations
Yep, I was looking at the max iterations I had set and estimated the time based on the avg. time per step I was getting at the time. I realise now that that is not what I should be doing -- I should be stopping the job once I achieve a reasonable loss (I think?)

I think the reason I was expecting shorter training times was because I was under the impression that I'd be doing "fine tuning" and not training from scratch... In following various tutorials I got muddled up 🤦‍♂️ Still learning! Thanks again.

Lukas Liebel (lukas.liebel@tum.de)
2021-01-11 10:41:08

I was under the impression that I'd be doing "fine tuning" and not training from scratch...
Well, maybe you are? 😄 Are you loading pre-trained weights and using a suspiciously small LR? 😉

Yep. Monitor your train and validation (!) loss (and maybe some other metrics) and then decide based on those. If you do, maybe you find out that the training time is indeed much shorter than expected. In a nutshell: Keep an eye open for the validation loss converging to some value or even increasing again. If that happens, it's time to stop! 😛 It's probably quite an oversimplification of things, but nevertheless a good point to start with.

Petar Gyurov (pgyurov93@gmail.com)
2021-01-11 11:08:07

Well now I am not sure 😆 My LR config is:

learning_rate {
cosine_decay_learning_rate {
learning_rate_base: 0.03999999910593033
total_steps: 25000
warmup_learning_rate: 0.013333000242710114
warmup_steps: 2000
}
}
momentum_optimizer_value: 0.8999999761581421
Here is a link to the tutorial I am following, maybe you'd be able to tell quicker than me: https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html#configuring-a-training-job

Lukas Liebel (lukas.liebel@tum.de)
2021-01-12 02:07:45

Considering that one of the steps in this tutorial reads: "Download Pre-Trained Model" I guess you were on the right track with your guess that you are merely fine tuning a network. There's also this part in your config:

  fine_tune_checkpoint: "pre-trained-models/ssd_resnet50_v1_fpn_640x640_coco17_tpu-8/checkpoint/ckpt-0" # Path to checkpoint of pre-trained model
num_steps: 25000
startup_delay_steps: 0.0
replicas_to_aggregate: 8
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_type: "detection" # Set this to "detection" since we want to be training the full detection model
use_bfloat16: false # Set this to false if you are not training on a TPU
fine_tune_checkpoint_version: V2
}

Petar Gyurov (pgyurov93@gmail.com)
2021-01-12 05:34:48

I guess I am a little confused because in one of the official TF tutorials they take a different approach -- what stands out to me here is that they explicitly "restore all but the classification layer at the top", where as the tutorial above doesn't really mention doing anything of the sort.

Lukas Liebel (lukas.liebel@tum.de)
2021-01-12 05:59:45

Cutting off the top layer implies that you want to keep the "deep features" learned by the lower layers but want to re-purpose the net for a different classification problem. You'll often see them freezing the weights of the lower layers to keep them intact while only really training the classifier head. The other tutorial may follow a slightly different strategy. Yet, if you start off with pre-trained weights and only wiggle them slightly to adapt to your new dataset you're still fine tuning (which will require far less training data and training time). Just follow along some of the mentioned tutorials and you'll get the hang of it quickly 🙂 If you even intend to learn more about it. If this is just a tool you want to use once, maybe you can find someone here who can help you with training and deploying the network! 🙂

Petar Gyurov (pgyurov93@gmail.com)
2021-01-12 06:08:41

Cutting off the top layer implies that you want to keep the "deep features" learned by the lower layers but want to re-purpose the net for a different classification problem. You'll often see them freezing the weights of the lower layers to keep them intact while only really training the classifier head
This is what I initially set out to do, because my understanding was that it's the way to fine tune an existing model. Looks like I need to read further 🙂 In any case, things are clearer in my head now -- thanks for the help Lukas! 😄

Lukas Liebel (lukas.liebel@tum.de)
2021-01-12 06:48:53

You're very welcome 🙂 Good luck with your project. Let us know what you came up with!

Petar Gyurov (pgyurov93@gmail.com)
2021-01-12 06:49:32

Will do 👍 🙂

🤩 Lukas Liebel
Isaac Griswold-Steiner (isaac.griswold.steiner@gmail.com)
2021-03-04 13:00:16

Super late to this, but in case it might be useful in the future, what was the data type of your input? Float64? Sometimes you can reduce it to float16 or even float8, although last time I did this it required some tinkering to get smaller data types to work

Petar Gyurov (pgyurov93@gmail.com)
2021-03-05 03:35:08

@Isaac Griswold-Steiner I don't quite remember; I think it was float64. Will keep this in mind, thanks 🙂

Oc (boulaisoceane@gmail.com)
2021-02-13 18:46:25

Ahoy! Does anyone know of any aerial datasets of disappearing land-surrounded water bodies over the past few decades?

😎 Jon Van Oast
Sara Beery (sara.beery@gmail.com)
2021-02-13 18:58:51

I reviewed a paper on something similar for a conference a year or so ago, let me see if I can find it.

Oc (boulaisoceane@gmail.com)
2021-02-15 17:21:25

Thanks Sara! That would be super appreciated

Sara Beery (sara.beery@gmail.com)
2021-02-15 17:26:25

Ok, I can't find the paper I reviewed (not sure if it's been published yet) but while searching I found some papers looking at general water body identification if you're interested? I'm not sure of these have the change over time component you're interested in though.

🙌 Oc, Björn Lütjens
Sara Beery (sara.beery@gmail.com)
2021-02-15 17:27:56

https://ieeexplore.ieee.org/abstract/document/8013683?casa_token=CZ78y-Tsz-sAAAAA:z5JN[…]5q04nqbkaz_YYsb5Wjh7PVsDYQ5ma6EwsJUng9BLOQWILKXVWVNTBsOur4w

ieeexplore.ieee.org
Sara Beery (sara.beery@gmail.com)
2021-02-15 17:28:40
Sara Beery (sara.beery@gmail.com)
2021-02-15 17:30:28

https://link.springer.com/article/10.1007/s40899-020-00425-4

Sustainable Water Resources Management
Sara Beery (sara.beery@gmail.com)
2021-02-15 17:31:03
Oc (boulaisoceane@gmail.com)
2021-02-15 17:33:34

Dude thanks!

❤️ Sara Beery, Jon Van Oast
Sara Beery (sara.beery@gmail.com)
2021-02-15 17:35:45

This has multi-source/multi-temporal which sounds neat, but is urban-focused https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7014233/

PubMed Central (PMC)
Sara Beery (sara.beery@gmail.com)
2021-02-15 17:36:03

What are you working on? Seems like a cool project 🙂

Oc (boulaisoceane@gmail.com)
2021-02-20 17:37:21

ouf thanks for your patience on this reply - this week was a blackhole. I’m living and working remote in an ML+art residency near Bombay Beach on the coast of the Salton Sea and I’ve become fascinated with the bizarre-ness of this place. Last summer, myself, @Björn Lütjens and a few others used pix2pixHD and SLOSH to generate physics-informed satellite images “of the future” in the eastern parts of the US. I want to do something similar for the Salton Sea with styleGAN and try to find some “drought vector” ? We’ll see! I’ve attached a proof-of-concept whipped up in illustrator. The moonshot goal would be to have this on a timescale UI.

🦅 Björn Lütjens
😮 Jon Van Oast
Sara Beery (sara.beery@gmail.com)
2021-02-20 17:42:48

COOL!!

Björn Lütjens (bjoern.luetjens@gmail.com)
2021-02-20 17:37:25

@Björn Lütjens has joined the channel

Chloe Nouzille (cmnouzille@gmail.com)
2021-04-20 21:40:24

Hi everyone! I was wondering if anyone has any experience using the zooniversesubjectuploader.R from GitHub? I am attempting to modify it so it will work on my Mac (it is currently written for a PC).
I got stuck in the first part of this function:
resizephotos <- function(toresize = NULL, fileinfo = NULL, output = NULL,
crop_drop = FALSE, border = FALSE){
im <- system("where /r \"C:\Program Files\" convert.exe", intern = TRUE) #change "where" to "which" for Mac
if(length(im) == 0){
stop("convert.exe not found in imageMagick.")
}
I think the “where” function on a PC is “which” on a Mac? but I’m not sure how to fix this otherwise…. also is imageMagick something I need on a Mac?

Thank you!

Sara Beery (sara.beery@gmail.com)
2021-04-20 21:59:19

Not sure about the other stuff, but ImageMagick is something I've needed to install in the past on my Mac!

Chloe Nouzille (cmnouzille@gmail.com)
2021-04-21 00:18:39

Thank you!

Maxime Cauchoix (mcauchoixxx@gmail.com)
2021-08-09 02:02:52

Hi everyone, I'm a french ecologist/cognitive scientist working on behaviour, cognition and conservation of birds so far but I have new projects starting in other taxa. I recently moved to CV for bird species and behaviour identification at feeders because of injury issue I met with RFID technology. Our goal is to deploy models on a raspberry pi to preprocess data on the edge and only log and transfer labels. We started object detection with a computer scientist student on a custom dataset training a SSD mobilnet V2 and we are facing 2 issue. The 1st one is that although global metrics such as mAP(IoU=0,5)=0.87 are pretty good. We have a very low AP (=0,004) for the most abundant class (MESCHA). Any idea of what could happen or how we could move forward to understand what is the issue? Thanks for your help!
Bellow the results provided by COCO and PASCAL VOC evaluation scripts.

Carly Batist (cbatist@gradcenter.cuny.edu)
2021-08-09 08:39:00

If you’re doing Edge stuff, the folks at Edge Impulse may be able to help! I’d also perhaps post about this in WILDLABS (wildlabs.net), an online conservation tech community full of people doing all sorts of CV, ML & tech for conservation 🙂

Carly Batist (cbatist@gradcenter.cuny.edu)
2021-08-09 08:39:45

So this is a RasPi camera trap type thing then? If so, this paper may also be of use/interest if you haven’t already ready it: https://doi.org/10.1111/2041-210X.13610 (“A Raspberry Pi-based camera system & image processing procedure for low-cost and long-term monitoring of forest canopy dynamics”)

Maxime Cauchoix (mcauchoixxx@gmail.com)
2021-08-11 06:04:05

hi @Carly Batist, thanks for the paper and advice. My main issue is not edge stuff for now but a evaluation of the SSD mobinet trained on a GPU

Caleb Powell (cpowel21@asu.edu)
2021-09-11 18:17:16

@Maxime Cauchoix, I'm no expert but my first impression is: would it be helpful to include a background/other class? That is if you don't already have one. Since it is failing when predicting the most frequent class, I wonder if the model has not just learned to chuck the kitchen sink into the most frequent class?

Sean Carter (sean.carter@mso.umt.edu)
2021-08-23 12:36:04

Hi folks, I'm a graduate student at the University of Montana studying ways to facilitate Aquatic Invasive Species management using Remote Sensing Imagery and Machine Learning algorithms. I have developed a workflow for generating rapid risk assessment maps using species occurrence data, a library of remote sensing inputs, and an ensemble modeling technique.

Right now, I'm needing to defend my weighted average Species Distribution Modeling consensus technique and am looking for resources specifically detailing or recommending a threshold value from which to drop models (i.e. if models have an AUC score < 0.7, don't include them in the ensemble). I swear that I read this recommendation somewhere, but can't seem to find it in any resources (e.g. Thuiller et al., 2009, Araujo et al., 2009 , Marmion et al., 2009, etc) at the moment. Can anybody point me to such a paper? Thanks in advance!! 🙏

sciencedirect.com
Chloe Nouzille (cmnouzille@gmail.com)
2021-09-23 10:52:41

Hi all, I was wondering if anyone has a way to write a tag into the metadata of a photo in R? I’ve looked at exifr and exiftoolr… but all I’ve found so far is reading tags that already exist in the metadata.
Any resources or advice would be greatly appreciated!

Petar Gyurov (pgyurov93@gmail.com)
2021-09-23 13:03:25

I'm not an R dev, so I may be way off, but it looks like it may be easier to call an external program or script from R to do this.

  1. R write EXIF data to JPEG file

  2. Call Python from R

What OS are you using?

Chloe Nouzille (cmnouzille@gmail.com)
2021-09-23 14:06:33

Mac OS Big Sur 11.5.2

Valentin Lucet (valentin.lucet@gmail.com)
2022-11-01 11:37:25

Hi, I was wondering if anyone could help me estimate how much compute power is needed to train a species classifier. I should have about 2TB of images, which should turn into about less than 500K images. I'm sure this is highly variable, but if I were to train something like YOLO (some classifier, not a detector) on such dataset what would be the GPU/CPU/memory requirements?
I can request access to V100 GPUs for example.

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-01 12:02:42

It'd be useful to know what size image you're training on (and also how many images are in your dataset). You can train a Yolov5 medium model (for example) on a fairly small desktop GPU (8-10 GB). With that many images I would consider looking at some sort of selection strategy to reduce your dataset size, though with augmentation and a huge dataset epochs are less meaningful and you can just keep training until your loss flattens.

Basically your VRAM requirement is dependent on model size, batch size and input image size, but I think something like 4-8GB x batch_size is a fair estimate for a medium model (last time I did this with 640x480px images). CPU requirements aren't that high, 4-8 cores per GPU should be OK to keep it fed. Most cloud platforms will enforce reasonable defaults for the number of vCPUs per GPU per instance.

e.g. https://github.com/ultralytics/yolov5/blob/master/data/hyps/hyp.scratch-high.yaml is the config for YOLOv5 on COCO. They use a 4xA100 (40 GB?) instance I think, with batch size 32 and 1280px images (I guess even for the XL models). But it's unlikely you'd need that unless you were training from scratch, that thing would burn ~250 bucks a day.

Valentin Lucet (valentin.lucet@gmail.com)
2022-11-01 12:08:19

Thanks for this! The plan is indeed not to train from scratch but to do transfer learning. It will happen on compute canada's HPCs.
Yes, now that you mention it my training set will of course be much smaller, I just don't know yet how much. I'll be cropping out detections from megadetector, so I will have to resize the cropped images.

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-01 12:09:01

Ah so is this just a classifier, not an object detector? (you mentioned YOLO). If that's the case then you need even less. Object detectors are pretty heavy.

Valentin Lucet (valentin.lucet@gmail.com)
2022-11-01 12:09:44

Oh my bad, I don't know why I wrote YOLO

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-01 12:10:16

For classification you could even try a quick test with a library like fastai (just run it in Colab), and see how well that does before throwing it at a cluster 🙂

👍 Valentin Lucet
Valentin Lucet (valentin.lucet@gmail.com)
2022-11-01 12:13:39

Ok, but basically you would expect the needs to be rather modest?
I've just done a quick estimate, but the whole set should be around 300-400k detections. For sure below 500k.

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-01 13:39:46

Yeah, it really depends on what the data looks like and if your species are easy to differentiate. I would try something very simple like a resnet50 (or even a resnet18/34) and see how well it does.

🙏 Valentin Lucet
Dan Morris (agentmorris@gmail.com)
2022-11-01 14:47:42

If you're looking for someone to throw out a number to help you estimate budget, I will throw out a number, then duck while people caution you about all the caveats... on a V100, training a model like what you're describing is probably on the order of a week. Longer than a day, shorter than a month. YMMV.

Dan Morris (agentmorris@gmail.com)
2022-11-01 14:48:56

I also wouldn't think about it in terms of "needs". You can train anything on anything (within reason) if you have enough time to wait. I would think of it as a tradeoff between up-front cost and time.

👍 Valentin Lucet
Valentin Lucet (valentin.lucet@gmail.com)
2022-11-01 14:52:06

Yeah I can see how it's a bit of an unfair question to ask when I haven't done any benchmarks... The issue is that the deadline for applying for resources is way earlier than when I'll be able to start benchmarking. So I have to guess a bit

Dan Morris (agentmorris@gmail.com)
2022-11-01 14:54:24

Also remember the first model you train almost never works the way you hope it will; I'm answering (as are others) wrt the requirements for training one model. I would assume you will train ~3 times, so if I were budgeting cloud costs, for example, I would ask for a couple months of V100 time.

Valentin Lucet (valentin.lucet@gmail.com)
2022-11-01 14:57:35

Yes that makes sense. Thanks for the ballpark, that is helpful. In my case, it's better to undershoot and ask for more later than to overshoot.

Vinicius Amaral (amaralvin7@gmail.com)
2022-11-21 21:45:39

Hi all, does anyone have experience with ensuring reproducibility of train-test splits between different machines? I am building a project locally and am deploying it on Google Colab. I use sklearn's train_test_split to randomly split the items in a list. Even though I specify the same random_state argument and initialize my RNGs (random, numpy, and torch) with the same seed on both machines, I get different splits of the list on each machine. I'd like to ensure that the list is split the same way regardless of what machine is being used. Does anyone know what might be the best way to do this? I could create my own splitting function but was wondering if there's a "best practice" method that I should look into. Thanks in advance!

scikit-learn
Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-21 21:54:48

You could generate indices for samples, then random.shuffle and then partitioning the list into train/test/split etc. Is that still not repeatable if you call random.seed just before?

Safest would just be to generate a split once and then upload it or store it in your repo.

Malte Pedersen (mape@create.aau.dk)
2022-11-21 22:00:54

Hi, I am sorry for not answering your question, but I would like to add a comment, which I hope you find useful:

depending on the type, amount, and variation of your data, you might want to make the splits yourself to ensure approximately equal distribution of classes, number of objects per sequence, or what else you can use as a complexity measure for your data. Using a random function to generate your train/test splits is (in my opinion) often not a good idea. E.g., you could end up having complex and varied data in the train split and the opposite in the test split, which would most likely provide you with a non-representative high performance of your model.

We published a paper at ECCV this year aimed at handling this problem within the multi-object tracking domain https://arxiv.org/pdf/2207.10031.pdf

👍 Sara Beery
Vinicius Amaral (amaralvin7@gmail.com)
2022-11-21 22:14:53

@Josh Veitch-Michaelis Thanks for the suggestions. I will try the index shuffling method and if it doesn't work I'll likely resort to the offline split. @Malte Pedersen Thanks for your note as well. I have this implemented in a stratified manner such that the class distributions of the training/validation/testing sets are the same, so I don't think there should be a problem

👍 Malte Pedersen
Malte Pedersen (mape@create.aau.dk)
2022-11-21 22:16:10

That's great, it's often not taken into consideration

👍 Vinicius Amaral
Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 07:23:57

Hi all, this is a similar question to the one above of @Vinicius Amaral. I try to run two identical YOLOv5 (or YOLOv7) training scripts on a cluster, so using multiple GPUs, but I get very different results on the validation dataset. Maybe I do something wrong, or possibly when using multiple GPUs, reproducibility cannot be assured. I opened an issue here if you need more details: https://github.com/WongKinYiu/yolov7/issues/1144 If you have some thoughts to share, you can also comment on the GitHub issue. Did someone else encountered this and how did you solve it?

I am aware that with the v6.2 release YOLOv5 addresses the reproducibility issue, but it sounds to me that when using multiple GPUs, then this is still a problem:

"Training Reproducibility: Single-GPU YOLOv5 training with torch>=1.12.0 is now fully reproducible, and a new --seed argument can be used (default seed=0) (ultralytics/yolov5#8213)"

Paul Bodesheim (paul.bodesheim@uni-jena.de)
2022-11-22 08:10:07

Hi Valentin, this might be related to the non-deterministic computations on GPUs (even on single ones). Just quickly found the following link: https://github.com/NVIDIA/framework-determinism
You probably need to search for "GPU and determinism" to find out more in this direction, but there are various known issues, e.g., with respect to the cudnn library. Hope this pointer helps.

Stars
378
Language
Python
🙌 Valentin Ștefan
Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 08:29:21

Yes, it does help. At least I know what key words to use and that helps a lot already. Thanks!

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-22 12:21:40

Just a note that we've also had trouble with this in Detectron2.

IMO the main impact of randomisation should be the order in which your model sees new training data, and what augmentation is applied. For an "ideal" dataset that's sufficiently representative, etc, that order shouldn't matter too much. I would argue that if you're seeing significant differences due to framework determinism (things like rounding errors) then that's a "smell" that you should investigate your training data and try to figure out if the model is really generalising. In the talk the difference between the deterministic and non-deterministic models is pretty small (like 5-6% I think?).

You could also look at doing a bunch of runs and seeing what the variance is as a function of epoch. Perhaps you just need to train for longer, or lower the learning rate a bit if the model is jumping around? I'm not sure I'd trust the results if you can get a 10-20% improvement just by tweaking a random seed (is it a fluke on your validation set?). A more computationally intensive workaround for this is to ensemble a bunch of models. I agree it's tricky, especially if you want to try and reproduce a run with an identical seed.

Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 12:50:07

Thanks for sharing your thoughts Josh.
I trained for 300 epochs each time and it looked like enough. The two identical runs give so different results that makes me think that I implemented something wrong, but I can't see what and I need to see how they perform on the identical test dataset. I have 100 images for training, 50 for validation and 50 for testing (a total of 200 images per species). I run it the 3rd time and I also get again different results. If this is inherently a problem in the YOLOv5 or v7 implementation when using multiple GPUs (as mentioned for example here https://github.com/ultralytics/yolov5/discussions/9288#discussioncomment-3560835), then how am I supposed to even optimize a model? Should I bite the bullet and just train on a single GPU every time? It is very hard to get a sense of direction when things feel random.
It is fascinating that detectron2 has the same issue. Is this a current huge problem in the field?

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-22 12:51:59

see here for example: https://github.com/facebookresearch/detectron2/issues/4260

👍 Valentin Ștefan
Vinicius Amaral (amaralvin7@gmail.com)
2022-11-22 13:29:36

I'm not sure if you have seen this already, but since it seems you are working with pytorch, this may be helpful as well: https://pytorch.org/docs/stable/notes/randomness.html

👍 Valentin Ștefan
Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 14:18:47

Yes, I saw that. I realize that it was mentioned by Glen Jocher at the link above too https://github.com/ultralytics/yolov5/discussions/9288#discussioncomment-3560835 I have no idea how to solve this. I am more of a person who wants to learn how to drive the car, not how to fix the engine 🙂 I mean, I am not at the level of building architectures and fixing bugs within them, but more on the side of making use of them for our research questions

👍 Vinicius Amaral
Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 14:38:30

I'll try to collaborate with the Cluster support team and see what I find out. But any other suggestions are welcomed as I cannot solve this by myself 🙂 It looks like this is an open issue when using multiple GPUs both for YOLO and detectron2.

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2022-11-22 14:57:44

Yeah this was from a colleague - I'm also using Detectron but I've not tried to measure the effect on my own data yet.

Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 14:58:31

I'll try to investigate more and share what I get. As an alternative we could run a model N times, so that we get a distribution of performance metrics and we would always compare distributions to decide how to optimize models or to compare different approaches.

Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-11-22 15:00:46

But that is easily overkill and not so affordable if a model takes days to run. Perhaps running it several times with less epochs might be also a compromise (like 50 epochs or so, or maybe even less, but then the results might not be stable / variance is really high and not informative)

Valentin Ștefan (valentin.stefan.vst@gmail.com)
2022-12-01 08:19:09

Updates:
Indeed YOLOv5, starting with the release v6.2 (as mentione above), implemented reproducibility only for using a single GPU. With YOLOv7 I couldn't get reproducible results on a single GPU. Reproducibility with parallel processing, using multiple GPUs at once, seems to remain an open issue both for YOLOv5 and v7.
Perhaps someone who can edit their code might implement this, but it is out of my reach for now. If anyone else makes progress with this please let me know as I find this extremely crucial for open science, reproducibility & transparency.

Remi Gosselin (remipgosselin@gmail.com)
2022-11-30 17:16:17

Hi everyone!

I'm new to this slack group, as well as computer science in general, but I want to combine my knowledge of animal behavior and wildlife conservation with AI and ML to improve our data collection and processing methods. For example, the PhD opportunities listed with WildDrone look like incredible projects that I would love to join, but I'm concerned that my CS skills are lacking 😅

Does anyone have advice as to how I could improve my CS skills? I would love to take classes (and am currently working through Harvard's CS50!), but my current job would only allow for virtual self-paced education. I'd also love to volunteer with an AI/ML project to learn by doing, but I don't know of any projects accepting volunteers, especially those without a solid skill set (I don't want to slow any projects/groups down while trying to help 😵‍💫)

Thank you! ☺️

Suzanne Stathatos (suzanne.stathatos@gmail.com)
2022-11-30 17:21:47

If you’re totally new to computer science, I strongly recommend starting with these lectures. These will, in theory, give you a good foundation on computers in general, and help you use tools like AWS/Azure/GCP if you’d like! Afterward, I’d focus on honing your python skills

https://missing.csail.mit.edu/

❤️ Remi Gosselin, Sara Beery
👍 Rowan Converse
Suzanne Stathatos (suzanne.stathatos@gmail.com)
2022-11-30 17:22:08

Would also love to chat with you as you go more about your process and learning experience.

Also, if your job would allow/if your drone work is vision-focused, I’d highly recommend applying for the CV4 ecology summer workshop. More info here

👍 Taiki Sakai - NOAA Affiliate, Rowan Converse, Carly Batist
Blair Costelloe (blaircostelloe@gmail.com)
2022-12-01 03:31:18

Hi Remi, I just want to say that, generally, the ecology/behavior focused PhD projects in WildDrone do not require a computer science background, and would provide lots of opportunities for gaining such skills and collaborating with CS folks to apply their skills to wildlife/behavior problems. So if any of the projects (particularly those in Theme 1) appeal to you I would encourage you to apply!

😮 Remi Gosselin
❤️ Sara Beery
Blair Costelloe (blaircostelloe@gmail.com)
2022-12-01 03:47:56

In fact, I would say that the Theme 1 projects are generally aimed at people such as yourself - who have a strong background in the wildlife side of things, and are motivated to combine these skills with drone technology and computer vision through skills development, but most importantly through collaboration. A grounding principle of the WildDrone project is that no one can be an expert in all three areas (wildlife, drone technology and computer vision), so collaboration is the necessary and best way forward. Please apply!

❤️ Remi Gosselin, Sara Beery, Suzanne Stathatos
Remi Gosselin (remipgosselin@gmail.com)
2022-12-01 13:34:34

I was looking at the theme one projects! This is really reassuring, I'll definitely plan to apply ☺️

Blair Costelloe (blaircostelloe@gmail.com)
2022-12-01 14:04:21

Great!

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-01-23 15:04:57

Does anyone have some recommendations/have some practical experience on integrating low-dimensional metadata+context into image processing CNNs (or any model which accepts a high-dimensional input like an image)? See table 1 here. Think geolocation, image scale, all the good stuff we get from field work, etc.

I've had a look at the literature on context-aware ML, but it's mostly fairly abstract and I've struggled to find anything that spells out a simple experiment or model architecture where you have a vector of contextual information and you want to use it to aid prediction. In most cases we don't need to predict the metadata, since we almost always have it a-priori from the image (e.g. we only predict on geo-located data, so we can infer biome etc), but we might want to try and force the model to discriminate better using it.

The main choice I can see is where/how you insert the metadata and how you exploit it during training/inference. Do you insert it at the start (with the image), do you add it onto the embedding at the output of the model? Do you just use it during training as an assist, or do you use it at test-time too? Do you try to predict the metadata and use an additional loss term? Lots of stuff to consider 🙂

An interesting idea here is to "brand" the information into the image: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8857478 - i.e. insert metadata at a low level in the network

There's also this paper on "nuisance" features (altitude, weather, etc) https://openaccess.thecvf.com/content_ICCV_2019/papers/Wu_Delving_Into_Robust_Object_Detection_From_Unmanned_Aerial_Vehicles_A_ICCV_2019_paper.pdf This approach basically co-trains a bunch of predictor heads to also classify/regress things like weather, altitude, etc. It works well, though I think the terminology is over-complicated; the "NDFT" is just the backbone model of the object detector. The downside of this approach is that it only works at training time, it doesn't allow us to condition the model during inference.

Daniel Davila (daniel.davila@kitware.com)
2023-01-23 19:04:15

Have you looked into transformers? There is a lot of work coming out where people are exploiting additional metadata by appending them to the patches, in a similar way to how you append positional encodings on the vision transformer

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-01-23 19:15:46

Interesting, do you have a reference? At the moment we're using Mask-RCNN because it's pretty stable, but should be simple enough to swap out.

Petar Gyurov (pgyurov93@gmail.com)
2023-03-17 08:37:45

Hi everyone. Happy Friday! 👋
Does anyone know of any approaches that allow a NN to understand the 3D shape of an object from a collection of images? For instance, imagine a collection of images of a single tree, starting from its base, spiralling around it, all the way to the top. I am interested in being able to separate each branch from the rest and keep track of it as the images change (for example, the same branch might be visible from a different angle in some images; it needs to be identified as the same exact branch/entity)

I am thinking I need to delve into NeRFs for this, but wondering if people here have any ideas. Also this isn’t specifically for trees/branches, it could be just about anything I suppose.

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-03-17 08:57:09

Is there a reason you need to use a NN for the reconstruction and not something like photogrammetry? I would explore whether you can simply take a bunch of photos of the tree from various angles and stitch them together.

For example, do you need "understanding" or just a good, consistent 3D model?

I would suggest that you split this into two stages - one would be to generate a model, and second would be to segment/classify. NeRFs look good, but they require a lot of compute power and the results may be sensitive to the scene. Depending on the conditions and scale, you might be able to use things like structured light scanning, time of flight, etc.

I've used TLS for this and it's quite effective up to 20-30m, but very expensive (the scanners are, anyway).

Cody Kupferschmidt (kupfersc@uoguelph.ca)
2023-03-17 09:28:11

I second that computer vision approaches for photogrammetry (e.g. Structure From Motion) might be a good first step to build a 3D model prior to implementing your NN.

Wikipedia (https://en.wikipedia.org/)
👍 Sara Beery
Petar Gyurov (pgyurov93@gmail.com)
2023-03-17 09:28:55

Yes, a two stage approach is likely what I need…

Photogrammetry is a good shout but ultimately I don’t care about actually having a 3D model. I’m thinking I need something like instance segmentation on steroids.

I’ll give you a bit more context using the tree analogy again. For a given image I need to identify unique branches. I can train a segmentation model to do that do some degree but likely not very granular. Branches are just too similar in nature to get good results… I could probably segment the background, the tree trunk and all branches together as one entity.

Hence why I am interested in a model that can “understand” the shape/characteristics of the whole tree as opposed to just what’s present in a single image.

Also, what is TLS in this context? Thanks.

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-03-17 09:29:02

(have a look at MicMac - https://micmac.ensg.eu/index.php/Accueil)

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-03-17 09:29:28

TLS is Terrestrial Laser Scanning

👍 Petar Gyurov
Petar Gyurov (pgyurov93@gmail.com)
2023-03-17 09:29:58

I suppose I am curious about the second step… segmentation in 3D space? Similar to point cloud classification maybe?

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-03-17 09:30:40

Yes, basically. You can do 3D convolution instead of 2D, for example. Depends a little on whether you're doing voxel based classification or true point clouds (which are a lot more difficult in some ways because they're unstructured).

Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-03-17 09:31:02

See https://arxiv.org/abs/1612.00593

arXiv.org
Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-03-17 09:31:59

But the inputs to all these models is a 3D representation of the scene, so you still need to generate that first. And if you get a good reconstruction, you'll solve the problem of disambiguating branches because they're just part of the point cloud.

Petar Gyurov (pgyurov93@gmail.com)
2023-03-17 09:35:04

Makes sense, thank you! That cleared up some things in my head.

Felipe Parodi (parodifelipe07@gmail.com)
2023-04-04 11:38:08

Hi all! Does anyone know of great labeling tools in which I can upload many images (~200k) with corresponding COCO-formatted bounding box labels for refinement?

Aakash Gupta (aakash@thinkevolveconsulting.com)
2023-04-04 13:14:53

I have use makesense.ai and was good for my usecase. Here's a partial list of urls with similar toolset:

https://www.makesense.ai/
http://labelme.csail.mit.edu/Release3.0/
https://scalabel.ai/
https://github.com/tzutalin/labelImg

Website
<https://youtu.be/p0nR2YsCY_U>
Stars
19499
scalabel.ai
👍 Jon Van Oast
Felipe Parodi (parodifelipe07@gmail.com)
2023-04-04 14:35:08

thank you very much!

Dan Morris (agentmorris@gmail.com)
2023-04-05 19:56:55

Closely-related thread from a few days ago:

https://aiforconservation.slack.com/archives/CLWGQ4BJ6/p1678977264828679

But now you've piqued all of our curiosity... what are you putting boxes on?

Felipe Parodi (parodifelipe07@gmail.com)
2023-04-05 20:20:58

thank you! And primate faces— happy to chat more if interested!

👍 Dan Morris
Dan Morris (agentmorris@gmail.com)
2023-04-05 20:52:05

Neat! Let this Slack know what you end up using for annotations, this is a question that comes up a lot here.

👍 Felipe Parodi
Josh Veitch-Michaelis (j.veitchmichaelis@gmail.com)
2023-04-12 12:57:05

@Felipe Parodi this is pretty doable in CVAT if you're just after boxes. Though I would suggest batching your data into subtasks for convenience (like 1k images at at time). The upload system is pedantic, but it works.

It's not super clear from your question, but you already have labels and you want to tighten the boxes? I would imagine that you'd be able to do well by fixing even 5% of the data, re-training and re-labelling.

Felipe Parodi (parodifelipe07@gmail.com)
2023-04-13 10:18:24

@Josh Veitch-Michaelis yes i do have boxes to tighten-- thanks for the tip!

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 10:41:36

Hi! Quick question about Megadetector, we've ran into an issue that I dont think is a bug, just maybe a corner case that maybe others may have ran into as well.
We place our cameras in the winter in marshy areas where it is very hard to predict what vegetation will look like in the spring. We often end up with sites where a lot of plants/bushes have grown rigth in front of the sensor. Add to this a lot of windy episodes, and you get a recipe for lots of false triggers and a lot of false positives in the case of Megadetector detections (we use a confidence threshold of 0.1, but a lot of these false vegetation triggers have pretty high confidence over 0.5). Its often not possible to filter for repeating bounding boxes as the vegetation will noticeably shift in the wind at this distance from the sensor. Has anyone ran into this specific MD behaviour?

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 10:50:35

Here are some examples of such bounding boxes

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 10:55:11

We re considering training some model to tease apart false from true positives for our specific use case (either using characteristics of the BB or directly training a classifier.. we think a classifier will not generalise to future wind events at different sites though).

Sara Beery (sara.beery@gmail.com)
2023-04-10 11:04:45

Can you show the whole images for the boxes above?

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:09:36

Yes! Second image is actually a bad example, its a root which could have been filtered out. The last too are more emblematic of the issue

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:16:07

there are so many of these windy images that even if MD's error rate on this is low, it still produces 10s of thousands of "relatively confident" false positives due to near sensor vegetation

Sara Beery (sara.beery@gmail.com)
2023-04-10 11:28:13

yeah, that's definitely tough. How much motion are we talking about? Also, what species are of interest? Maybe there's a way to tweak the box location based filtering for this use case

Sara Beery (sara.beery@gmail.com)
2023-04-10 11:29:49

a lot of these if I squint could maybe look similar to the tip of an ear or something

👍 Valentin Lucet
Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:33:36

How much motion are we talking about? => its only really a pain to sort through when the vegetation is fairly mobile. Im gonna make a gif to examplify that.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:34:45

what species are of interest? => we dont have targets, we are looking at everything (which of course doesnt help)

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:45:32

Hopefully it is not too heavy to upload its about 100MB

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:48:16

a smaller and shorter version probably visible without download here I think

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 11:49:45

that branch on the side is an example of what will trigger a lot of false positives and we have this on a lot of our sites due to the biome we work in and the extreme seasonality

Dan Morris (agentmorris@gmail.com)
2023-04-10 12:01:21

[Also see this answer from a couple weeks ago, where I said basically the same thing I'm about to say here. 🙂 ]

What are the overall rates of true positives MD false positives at your confidence threshold? In general, if MD (or any AI tools) are substantially reducing the number of images you have to deal with, false positives are just a part of life, and the only way to reliably get rid of them is to sacrifice some recall. So the first thing I would ask is whether any steps to reduce those FP numbers are going to take more time than it would take to just review those false positives.

That said, there are a few tricks we recommend if you really want to put some time in:

  • Always try both MDv5a and MDv5b on your data. Typically MDv5a performs a little better, but every once in a while, MDv5b "wins", and that's as close to a "free" improvement as you'll find.

  • We sometimes combine results from both MDv5a and MDv5b (and sometimes eevn MDv4). We usually do this to improve recall, but you can do this to improve precision: the two models tend to agree on true positives more than they agree on false positives, so if you tinker with confidence thresholds appropriately, you can preferentially take detections that the models agree on.

  • The #1 thing we recommend in these cases is our repeat detection elimination process, which is semi-manual but very fast when you get used to it: https://tinyurl.com/3htnrau2. It's not uncommon to get rid of 100,000 false positives in ~5 minutes this way, if you have a dataset of several million images. Unfortunately this is much less helpful when the detections are due to wind, because they are less geometrically stable.

  • And of course, you can fine-tune MD or train a post-hoc classifier (animal vs. junk) to eliminate noise. That classifier wouldn't really need to generalize, it would be OK if it just works for your cameras. I don't know of anyone doing this; it's straightforward in theory, but... if you want to go down this path, happy to help by email.

  • Just in the last couple of weeks, I have started experimenting with YOLOv5's test-time augmentation (https://tinyurl.com/2mcvbsxk), which requires running MD outside of our usual inference scripts. This has shown amazing promise for improving recall on really difficult data sets, though YMMV if you want to experiment with using this to improve precision.


But, to recap, my #1 recommendation is to think really hard about whether you want to try to solve this problem. 🙂

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 12:13:35

Thanks for all this.

Concerning the rate of FP: out of the 65,338 detections (for a total of 54,677 images) we have manually verified so far, 30,621 were false positives (or 46.87 %), and 33,237 were true positives (or 50.87 %), to which 1,480 false negatives were added (manually added bounding boxes, 2.27 %). Out of the 33,237 true positives, 1,738 had to have their bounding box adjusted.

I am now doubting that I ran the model properly, which actually brings to mind another issue we ran into, where sometimes in a sequence of images where an animal was detected, there would be an image in the middle of that sequence where MD just completely missed the animal even if found it in all of the previous and subsequent images (does that happen?).
Below is the code I used to run the model, to give you an idea. I dont think I departed from the doc. I apply the threshold of 0.1 later.

python $MD_FOLDER/detection/run_detector_batch.py <br>                $MD_FOLDER/$MODEL $RUN_DIR $STORAGE_DIR/$OUTPUT_JSON <br>                --output_relative_filenames --recursive <br>                --checkpoint_frequency $CHECKPOINT_FREQ <br>                --checkpoint_path $STORAGE_DIR/$CHECKPOINT_PATH <br>                --quiet <br>                --resume_from_checkpoint $STORAGE_DIR/$CHECKPOINT_PATH <br>                --allow_checkpoint_overwrite

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 12:27:56

Also, we try to process the detections with highest confidence first, so my number above are skewed toward true positives.
I completely agree with having to think hard as to whether this is even worth solving. I want to know if my number of false positives are really above normal, and unless ive ran the model wrong, it seems to be the case.

Dan Morris (agentmorris@gmail.com)
2023-04-10 12:53:49

Your code looks reasonable... I'm actually not sure what happens if you specify --resumefromcheckpoint when starting a job for the first time (that's used to resume processing if, e.g., your machine reboots), but whatever it is, I don't think it's something we need to worry about wrt accuracy.

A 50% false positive rate would be pretty high... but what was the total number of images from which those 55k detections came? If that was 30k false detections out of 100k total images, these results would be... not good. If that was 30k false detections out of 5M images, I would be thrilled with those results.

Re: missing an animal in the middle of a sequence... everything that could possibly go wrong will eventually go wrong. 🙂 Is this common? And is this a subtle case where the detections were close to the confidence boundary, and maybe the middle one just dipped to a slightly lower confidence? Sometimes in postprocessing we'll smooth detections over sequences, e.g., in a second pass, apply a lower confidence threshold to images in the same sequence as an image with a high-confidence detection. I don't usually do this until after doing whatever steps you're going to do to remove false positives.

In any case, I'm always curious to learn more about MD failures; if you want to send some images for me to take a look at, email cameratraps@lila.science.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 13:08:20

Sorry I actually copied the chunk for after checkpoint restart. The new run code is the same minus that.
I cant say how many iamges that comes from because we are processing more certain detections first, and I dont have a proper "set" estimate at hand. But it is more along the line of 30k in 100k.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-10 13:09:30

thanks again for all this. I will first try the repeat detection scripts and probably come back with more targeted estimates and discussion points

👍 Dan Morris
Aakash Gupta (aakash@thinkevolveconsulting.com)
2023-04-12 05:42:38

Does it make sense to make calibration to the camera trap. Reduce the number of images captured (sleep time between images) or reduce the sensitivity parameters of the sensors?

Aakash Gupta (aakash@thinkevolveconsulting.com)
2023-04-12 05:50:07

I am also a little inclined towards wondering if different geographies can impact the output of MD? This is more of an intuition, rather than based on any hard scientific analysis. But I have attached the geographic distribution of Wildlife Insights and Wildcam data. There is a gross imbalance with respect to data from the Indian subcontinent. This could be one of the reasons for MDv5 having a high number of false positives.

Cody Kupferschmidt (kupfersc@uoguelph.ca)
2023-04-12 10:43:15

I have not worked with Megadetector before, but have you considered training a post-hoc filtering algorithm? You should be able to fine-tune a pre-trained off the shelf model for your sites to reduce false positives.

Dan Morris (agentmorris@gmail.com)
2023-04-12 12:43:51

Variability in background can definitely impact accuracy, although I would think of it as a function of background and target taxa, more than geography. Background is slightly correlated with geography, but only a little. Dense rainforests are hard whether they're in Vietnam or Peru, and relatively open areas are easier whether they're in Tanzania or Montana. Reptiles and tiny nocturnal rodents are enormously difficult whether they're in India or Florida. That said, a few random notes:

  1. MDv5 includes a pretty decent representation of training data from India, provided by the Wildlife Institute of India.

  2. I agree with Cody's suggestion that if you want to reduce false positives, at the cost of some engineering and data labeling time, you would likely get very good results training a site-specific noise classifier. This would be specific to your cameras more than it would be specific to India, for example. I don't expect this to be the most efficient path, compared to alternatives like the repeat detection elimination approach (or even compared to just putting up with false positives), but I'd like to be wrong about that, i.e. I'd like to see this process get more efficient.


But most importantly, I would assess the precision at your target recall (e.g. precision @ 95% recall) and your overall blank image fraction over a reasonably large number of cameras before doing any custom ML. Those numbers are probably the best indicator of whether it's worth it to train a custom model to improve precision, either a fine-tuned MD or a post-hoc classifier.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-18 11:18:19

@Dan Morris, Ive tested the repeat detection scripts (it required to add a few packages to the conda env btw, i dont know if this is intentional?) and the default iouThreshold (0.85) doesnt yield anything, so ive lowered it to 0.5 and its looking like it will be useful, as its catching more of that wind movement. I was wondering if you had any advice on choosing the Threshold. Have you had to change it significantly in the past?

Dan Morris (agentmorris@gmail.com)
2023-04-18 12:07:25

Re: conda environment... sorry, there's a separate conda environment for everything that isn't literally running the model (environment.yml, rather than environment-detector.yml).

Note to self: maybe this is a little silly at this point and we should just add the other packages to environment-detector.yml. (Self says "noted").

🙂 Valentin Lucet
Dan Morris (agentmorris@gmail.com)
2023-04-18 12:11:18

Re: IoU threshold... I personally wouldn't use 0.5 unless you also set a very small maximum box size, at that point you're de facto just deleting all detections in an area of the image, which is a totally reasonable thing to do, but there are easier ways to do it, that don't require looking at lots of images. I never reduce this below 0.85.

But what confidence threshold are you using? I noticed that the default threshold is set to 0.8, which was sensible for MDv4, but not sensible for MDv5. I typically set this to just a little lower than the confidence threshold I'm going to use for image review, so maybe something like 0.1. If that's still at the default, try it at 0.1?

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-18 12:14:45

Oh, i did not notice that the default --confidenceMin was at 0.8. I should def try to lower that.

Dan Morris (agentmorris@gmail.com)
2023-04-18 12:15:38

FWIW the only parameter I usually play with is the occurrenceThreshold (the number of matching detections in the same place that are required to generate a candidate), and I typically never lower this below the default of 20. I tune this number to make sure that I'm going to spend around five minutes on the whole review process, so if I have a batch that's 50,000 images in total, I'll leave it at 20, but if I have a batch that's 2M images, I might raise this as high as 75 and just worry about the really egregious repeat detections. It's a little bit of guesswork, but I'm basically shooting for around 1000 candidate detections (which could be a couple hundred thousand of actual images).

And the other important bit is making sure that the script's concept of "camera" is accurate. If each folder is a camera, you're good to go with the defaults, but if you have a more complex folder structure, or if your camera creates overflow folders, you may have to tinker just a bit.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-18 12:16:39

And the important bit is making sure that the script's concept of "camera" is accurate.
Oh that's useful, thank you

Dan Morris (agentmorris@gmail.com)
2023-04-18 12:20:02

When running this at the command line, the only tool you have to get non-default camera identification (other than moving your images around) is the "nDirLevelsFromLeaf" parameter. But if sometimes a "leaf node" folder is a camera, and sometimes it's not, you can't easily catch that. It may not be worth worrying about, nothing bad happens in the case of typical RCNX100/RCNX101/etc. overflow folders, you just miss some opportunities for repeat detections to stack up. But if you need to do something more complicated, you may have to call this from Python and use the "customDirNameFunction" option:

https://github.com/microsoft/CameraTraps/blob/main/api/batch_processing/postprocessing/repeat_detection_elimination/repeat_detections_core.py#L139

I can't think of a great way to expose this at the command line.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-18 12:23:57

Ok, in my case, setting nDirLevelsFromLeaf = 1 instead of 0 is just what I need. We just have overflow folders at the last level. And that is already exposed at CL. Thanks Dan!

👍 Dan Morris
Dan Morris (agentmorris@gmail.com)
2023-04-18 12:30:24

That's fine as long as you always have that overflow folder. I would just double-check. I think this is the default on most cameras, but Bad Stuff will happen if nDirLevelsFromLeaf == 1 and that RCNX100 folder or similar isn't present for every camera.

Valentin Lucet (valentin.lucet@gmail.com)
2023-04-18 12:32:35

So far, the number of folder detected by the script is my expected number of cameras in my site folder (the folder I'm running the script on). I'll double check, but I'm pretty sure we always have that (at least) RCNX100.

👍 Dan Morris
Aakash Gupta (aakash@thinkevolveconsulting.com)
2023-04-18 14:37:32

There is so much information here. I will save it as a reference!

Dan Morris (agentmorris@gmail.com)
2023-06-07 08:14:36

Also see this thread (more stuff about repeat detection elimination):

https://aiforconservation.slack.com/archives/CM7GR4DB6/p1686105494925979

Rajiv Pattni (rajivcpattni@gmail.com)
2023-06-07 04:51:39

Hi all! I joined recently and am Co Founder of Terraspect. We're trying to mitigate terrestrial ecosystems services impact from buildings during their operational life by identifying light, noise and heat mitigants. Does anyone know of any datasets on embodied ecological impacts of building stock and casual drivers in the urban global south?

Jon Van Oast (jon@wildme.org)
2023-06-08 13:47:33

curious if anyone has suggestions for CV/ML systems that might assist in finding/mapping irrigation systems from satellite/aerial photos? in particular, i am wondering if this might assist in mapping efforts for the acequias here in new mexico u.s., a centuries-old irrigation system that treats water as a fundamental, communal resource.

Remi Gosselin (remipgosselin@gmail.com)
2023-07-05 02:43:58

Hi all! Does anyone have thoughts/feelings on the numerous data science and machine learning boot camps online? I'm looking to enroll in one but there are just so many to choose from 😵‍💫

Kalindi Fonda (kalindi.fonda@gmail.com)
2023-07-06 13:37:46

What do you want from it? How much time dd you want to deficate? Per day/in total? How much money?

Kalindi Fonda (kalindi.fonda@gmail.com)
2023-07-06 13:42:54

I did Le wagon in person in brussels (after seeing a post from @Alessandra Sellini mentioning it). For me it was really good. It is quite expensive, but i really needed the intensity and the peer pressure (as in learning with others and being pushed), and i was satisfied with the content and pedagogy too.


I used to work in ed tech and did all kinds of courses before, which also worked, (and probably you can find the content online for cheap/free) but when i did the bootcamp i didnt have the right frame of mind to be able to succeed in such a time frame (9 weeks) on my own.

Kalindi Fonda (kalindi.fonda@gmail.com)
2023-07-06 13:43:11

Happy to answer any questions

Remi Gosselin (remipgosselin@gmail.com)
2023-07-06 14:57:17

I want to shift my career from strictly animal behavior to conservative technology, and I'm really interested in data science and machine learning experience so I can be prepared for a PhD in that field
I'm planning to do something full time, preferably remotely, and am on the hunt for various scholarships to help with funding

❤️ Sara Beery
Remi Gosselin (remipgosselin@gmail.com)
2023-07-06 15:00:24

I tried doing part time courses but my current job schedule is too hectic to keep up with anything on the side, so I'm using self-pressure of being a full time student again to make sure I'm really focused on finishing the programs I sign up for! I'd love to chat more about the various programs you've had experience with!!

Kalindi Fonda (kalindi.fonda@gmail.com)
2023-09-28 08:03:12

I haven't found any useful scholarship options. Sometimes jobs give edu budget. Some courses offer discounts (for example for women in stem).
I did Le wagon and was very satisfied, a friend did founders and coders (but not the ML one, they added that one more recently, and I am also not sure if they offer an online version).

Online masters are also an option, but I think the fastest you could finish that is 1.5/2 years. There are some offered by University of London (Data and CS), Colorado via coursera, https://omscs.gatech.edu/home. But not sure how much peer pressure and peer learning comes with these options. (somewhere between 5-15k)

I went to do my bootcamp in person because I knew that that's the surest way that I'll be focused on learning for 8+ hours a day. And in the case of le wagon, it's 9 weeks, so one can deal with an unsustainable amount of pressure as well.

How much time do you want to give it?

Dan Watson (dan@sntech.co.uk)
2023-07-10 09:37:11

Hi everyone! I'm hoping to get some help with the application of CV to our new camera system, to help highlight when interesting things have happened on a video timeline (eg, an Interestingness score). We have a brief for an MVP version so if anyone is up for a chat about what we're looking to achieve, I'd love to learn more about potential costs/timelines for achieving it.

❤️ Sara Beery
👋 Dan Watson, Aakash Gupta, Alexander Dungate
matteo redana (r02mr18@gmail.com)
2023-10-13 10:23:54

Hi everyone... I need to produce some 3D model of insects form microscope images. But there are just a few each sample so the way I usually proceed through canonical photogrammetric software is not working. I was wondering if anyone has some suggestion with AI-based algorithms that can perform better. Thanks

Aakash Gupta (aakash@thinkevolveconsulting.com)
2023-10-18 03:10:10

Hi @matteo redana - this is a hot research area, where you build a 3D model, using few images. I can share some existing research which may be useful for your research.

In this paper they have created a 3D rendered model of a zebra using an open-source technique GRADE to identify them later in drone imagery. Maybe it gives you some ideas to work on!

https://arxiv.org/abs/2305.00432

arXiv.org
Gerald Maschmann (gerald_maschmann@fws.gov)
2024-05-15 13:35:00

Can A.I. identify and count my fish for me?
My organization operates multiple projects that use underwater cameras to record passing salmon (and other species). Technicians then review the recordings and ID and count the fish. I'm wondering if A.I. can id and count the fish for me? I'd love to connect with someone who might be able to help me. Thanks.

Aakash Gupta (aakash@thinkevolveconsulting.com)
2024-05-15 13:58:42

Yes there are models to count fish. You can also check this blog which uses Segment Anything for counting grains.

https://www.thinkevolveconsulting.com/2050-2-counting-grains/

Aakash Gupta (aakash@thinkevolveconsulting.com)
2024-05-15 14:02:06

Here's a version of the megadetector for fishes:
https://github.com/warplab/megafishdetector

Stars
9
Language
Python
Aakash Gupta (aakash@thinkevolveconsulting.com)
2024-05-15 14:03:12

Another interesting usecase in case you want to identify the species is run the image crop through one of the multi-modal generative models like Bard and you can even get the species classified.

Gerald Maschmann (gerald_maschmann@fws.gov)
2024-05-15 14:16:52

Thanks Aakash. I'll look into this.

Dan Morris (agentmorris@gmail.com)
2024-05-15 14:49:57

I have been maintaining a list of all the publicly-available models for finding fish in imagery that I'm aware of (including MegaFishDetector, which Aakash mentioned):

https://github.com/agentmorris/agentmorrispublic/blob/main/fish-datasets.md#publicly-available-models-for-fish-detection

@Filippo Varini and I have also been keeping track of datasets suitable for training models like this:

https://github.com/filippovarini/filippo_public/blob/master/fish-datasets.md

Indu (indup2@illinois.edu)
2024-06-01 15:10:03

Hi, I’m Indu 👋 and I’m a graduate student conducting research on explainable AI. I’m sending some information for a paid user study about XAI and bird identification that may be of interest to members of this Slack! 🐦

Our research team (Indu Panigrahi, Sunnie Kim, Rohan Jinturkar, Olga Russakovsky, Amna Liaqat, Ruth Fong, and Parastoo Abtahi) is conducting research on understanding the Explainable AI (XAI) needs of technical and non-technical users, and how certain designs of explanation can satisfy or not satisfy these needs, for the task of bird identification.

We’re looking to interview users with a diverse range of experiences with computer vision and machine learning (from no to a lot of experience) and a variety of birding expertise (from no birding experience to experienced birder). If you are interested in participating in this ~1.5-hour study over Zoom, please fill out this short Google form (https://forms.gle/F7bmWkVG7JyT6XA27). Study participants will be compensated with a $25 Amazon gift card (which will be sent electronically).

If you have any questions, please feel free to DM or email me. Thank you!

Bethany Beekly (bgbeekly@umich.edu)
2024-07-30 11:07:37

Hi folks, I'm a postdoc at the University of Michigan studying red squirrels, particularly the endangered Mt. Graham red squirrel! It's great to be here.

I'm trained as a reproductive neuroendocrinologist but I'm fascinated by AI and striking out into the machine learning wilderness with my current project--something my lab has no experience with! So I'm hoping to connect with someone who has experience using machine learning (random forests, Bayesian optimization) for conservation and the capacity for some involvement with my Smith Conservation Biology Fellowship application--at this point I'm just looking for some feedback on the ML part of my proposed project, but also ideally a willingness to participate in 1-2 meetings per academic year with my mentorship team during the 2-year fellowship period if the project gets funded. Please feel free to DM me with any questions about the the work. Thanks!

👋 Sara Beery
Jeremy Fix (jeremy.fix@centralesupelec.fr)
2024-08-20 07:58:31

Hello everyone; We are looking for a dataset of fish images 🐟 which are geolocated 📍. We would like to evaluate the impact of a geolocalized prior on the performances of fish classification. If you know about large datasets that are either single individuals, bounding boxes or masks, as soon as these are geolocalized, that would be great. For now, we only work with latitude/longitude but not yet depth.

We expect geographical diversity but could consider merging multiple datasets if necessary. Thank you very much for your help 🙏

Malte Pedersen (mape@create.aau.dk)
2024-08-20 08:09:36

You could also take a look at https://lila.science/otherdatasets#:~:text=horses%20(code)-,Marine/freshwater%20images,-Also%20see%20the

LILA BC
Written by
lilawp
Est. reading time
38 minutes
Jessica Bellworthy (jhbellworthy@coastaleco-group.com)
2024-08-30 16:42:46

Hello everyone, I am looking to automate data entry from data frames on paper into Excel or similar. I am a marine scientist and i print an empty dataframe onto underwater paper, then hand write my data to the paper when in the field. Back at the office, I have thousands of these pages per month to enter the data to the computer. I'm looking to automate this from a scanned image of the data. Of the software/ models I tried, most do a decent job of the typed text but struggle with integrating the handwriting at the same time and in a structured format. Has anyone successfully done something similar? Attached are two examples of my data frames. Thanks in advance, Jess

🐠 Shir Bar, Alan Stenhouse
Sebastien Ouellet (sebouel@gmail.com)
2024-08-31 22:58:33

Hey @Jessica Bellworthy, I'm aware of HandwritingOCR (a subscription service) which offers structured outputs (e.g. the screenshot I attached) but if you want it to be really reliable you may want to finetune the process on your scans and the expected format (I bet you're reusing the same dataframe templates for these thousands of pages?)
I also tried gpt4vision to export JSON and it does okay, not sure how cost-effective it would be with thousands though (second picture attached).
I don't know how much effort you want to spend automating this process but I'd be happy to chat more/help out.

Jessica Bellworthy (jhbellworthy@coastaleco-group.com)
2024-09-03 10:54:00

Oh Nice thank you. Already better than I did. I'm going to check out HandwritingOCR and get back to you with questions. Thank you for the reply.

Steve Haddock (haddock@mbari.org)
2024-09-03 14:47:47

Hi @Jessica Bellworthy I was hoping for something similar, but when I tried img2table I got hung up installing dependencies on my M2 Macbook. Might be worth a test.
https://github.com/xavctn/img2table/tree/main
I had one question about your table: Some of the cells have mixed content in them (like a number and a note). Would it be possible to add a separate Comment column? Or is there too much of a legacy? Seems it would be easier to parse if the cells always contained just numbers.

Steve Haddock (haddock@mbari.org)
2024-09-06 11:44:42

https://medium.com/@lidores98/image-table-to-dataframe-using-python-ocr-773c8afb713d

Medium
Reading time
5 min read
Juliana Gomez Consuegra (julianagc@berkeley.edu)
2024-09-27 07:20:18

Calling all frog lovers!! 🐸

We're a team of graduate students in the Masters in Information and Data Science (MIDS) program at UC Berkeley, currently working on our capstone project, a citizen science app for automated frog call identification to reduce the biodiversity data gap.

We're interested in knowing how users of citizen science apps interact with the apps and what their pain points are. The https://forms.gle/aP2nttCAQCKHE7g56 should take 5 minutes to complete, and it would greatly help us in our design.

Thank you in advance,

Haissam Akhras, Lia Cappellari, Farouk Ghandour, Erica Nakabayashi and Juliana Gómez Consuegra


We value your privacy: the information from this survey is confidential. We will only report aggregated results from all survey participants; no individually identifiable information will be stored or reported. All survey results will be deleted on December of 2024, as soon as the project is over.

Google Docs
❤️ Jodi Rowley, Shawn Johnson
Mo (nouraddini@gmail.com)
2024-10-07 16:11:46

Hi everyone
Does anyone have any experience with RAID0 on nvme SSD in Linux?
I want to increase my read/write speed of imge files of the camtraps(200-1000KB) , I did a software RAID0 but performance of 2 SSD RAID0 is the same or even a little worse than one SSD. Why does this happen? Is it because the files are small? Should I use small strip sizes?
Thanks.

Sam Lapp (sam.lapp@pitt.edu)
2024-11-21 11:09:44

Interesting, I’ve only used RAID with HDD arrays, where it provides a large speedup. What kind of connection do you have from computer to hard drives? Is it possible that you are i/o bottlenecked by the physical connection?

Jess Tam (j.tam@unsw.edu.au)
2024-11-15 01:53:29

Has anyone tried using DeepLabCut on JPGs instead of videos? I've read the docs but there doesn't seem to have info on image inferences. Would love to use SuperAnimal, but once again I couldn't find much on their website https://deeplabcut.github.io/DeepLabCut/README.html

Laura Madrid (lcmmadrid5@gmail.com)
2024-11-27 03:23:22

So far I have only used it on videos but based on the way the pipeline is set up you extract the videos into frames to do the annotations for training 🙂
So i think you would just need to skip the extraction part and i think this may be easier if you are using their jupyter notebook instead of the software...
here are some notebooks with examples : https://github.com/DeepLabCut/DeepLabCut/blob/main/examples/README.md

Laura Madrid (lcmmadrid5@gmail.com)
2024-11-27 03:23:37

I'm happy to help if I can 🙂

👍:skin_tone_3: Jess Tam
Jess Tam (j.tam@unsw.edu.au)
2024-11-27 21:22:21

Thanks heaps! I got a helpful response from the DLC team on GitHub and there is now a direct implementation for image inference with SuperAnimal (here: https://github.com/DeepLabCut/DeepLabCut/issues/2789). Although the notebook wasn't in the main branch which explains why it was so hard to find!

Assignees
<a href="https://github.com/n-poulsen">@n-poulsen</a>
Labels
question, DLC3.0🔥
Aakash Gupta (aakash@thinkevolveconsulting.com)
2025-01-13 13:15:55

I am facing some issues connecting with the FIRMS dataset (wildfire alerts). Seems like their server is facing a surge in traffic. Anyone else facing the same issue?

Omer Nevo (omer.nevo@idiv.de)
2025-02-05 03:47:20

Hi everyone! New here (thanks for the invite). I'm a researcher working on animal-plant interactions and seed-dispersal networks in Madagascar. My student has a dataset of a few hundred short footages of mouse lemurs caught on camera traps. We would like to have some idea as to the number of individuals we have, i.e. a crude identification of individuals. We are not really from the AI field so. I was wondering if anyone wishes to have a look and help us out? We can't offer much but if this ends up being published we are more than happy to offer authorship on an academic paper.

Sebastien Ouellet (sebouel@gmail.com)
2025-02-05 08:58:20

Hey Omer! I'm a ML practitioner and I'd be happy to have a look at your dataset (no need for compensation). You can DM me if you'd like

Dan Morris (agentmorris@gmail.com)
2025-02-05 10:55:46

Just confirming: you are trying to identify individuals, right, not just the number of individuals present in a given image?

Assuming I've got that right, my first question for individual ID problems is always: can you tell one individual apart from another in a video? I.e., are the markings sufficiently distinct that human experts do this? It's not quite never the case that AI can do an identification task that human experts can't, but it's almost never the case.

👍 Sebastien Ouellet
💯 Jon Van Oast, Arthur Caillau
➕ Atul Ingle
Omer Nevo (omer.nevo@idiv.de)
2025-02-06 07:19:17

Thanks both! @Sebastien Ouellet I'll DM you.

@Dan Morris I see these as two sides of the same coin. If I can identify individuals, I can count how many I had.
We are aware that this is a difficult task, which is why our hopes would not be to have full id of all individuals, but to be able to have a good estimate of the minimum number of individuals.

I think human experts should be able to it at least partially, but it might require an insane attention to little details like the combination of variables like the length of the tail and the distance between the ears.

Aakash Gupta (aakash@thinkevolveconsulting.com)
2025-02-08 10:58:00

Hi Omer - believe you have got some good inputs from Dan and Sebastian. But still I would like to offer my help, if its required. This will be a pro-bono.
Alternatively, you could open source the dataset on Zenodo (or other platform) and let us work on it! 🙂

Cole von Glahn (cole@policyinnovation.org)
2025-02-13 16:50:26

Hi All! Just joined this community and I'm and wondering if there are any State or Federal personnel working on AI for Conservation who would be willing to discuss their projects for a report my organization is putting together for the Walton Family Foundation? Full details are in the pdf included here.

The Upshot - We're hosting listening sessions with government employees using (or developing) AI solutions for conservation impacts. We're specifically focused on the uses, barriers, and landscape factors that impact adoption. The goal is to connect these folks, develop a library of initiatives, and publish a report on the opportunities, barriers, strategies, and cost-benefit analysis of AI for conservation.

If you're interested (or know someone who might be!) please reach out to me either through here or via email at cole@policyinnovation.org.

Thanks!

Aakash Gupta (aakash@thinkevolveconsulting.com)
2025-02-14 01:14:02

If you are interested. I can share a few usecases/connects to govt officials from India.

Constanza Andrea Molina Catricheo (camolina2@uc.cl)
2025-04-17 08:55:57

Hi all,
I'm looking for a large-scale dataset (preferably thousands of images) containing semantic segmentation of vegetation types—such as trees, shrubs, etc.—ideally sourced from drone or aerial imagery.
If you know of any relevant datasets or resources, I’d really appreciate the recommendation!
Thanks in advance!

Grace Lindsay (gracewlindsay@gmail.com)
2025-05-10 12:26:33

Hi - is there a list (or does anyone just have an opinion on) what the most impactful/important "AI for Conservation" papers are?

🤔 Mark Goldwater, Aakash Gupta, Andy Viet Huynh, Kit Lewers
Hila Bernstein (bernstein@seas.harvard.edu)
2025-06-06 13:51:10

Hi all - someone reached out to me looking for some in person training on Raven in the Cambridge, Massachusetts area. This group is trying to analyze rat vocalizations and would find a tutorial useful). They will pay (an unspecified) fee for lessons. Happy to share more, feel free to message me if you could provide help or have suggestions!

Chase Rakowski (chaserak@gmail.com)
2025-06-25 16:55:08

My collaborators and I are looking for someone to take on a project developing a deep learning computer vision model to identify and measure duckweed species growing together. While we don’t have much in the way of funding, this project could be perfect for a thesis. We believe it would make a nice paper in and of itself, but then it would facilitate using our data to produce at least one more paper (and likely more in the future) which a successful model developer would be invited to co-author.

Duckweed are used as a model system in biology/ecology experiments due to their small size, rapid growth, and relative ease of care. However, it is difficult to quantify species’ growth when in co-culture because the species are very similar in color and shape, and are often occluded (see attached pictures). This means that a successful model would open the door to a lot of ecology experiments and insight, so there is opportunity here for significant impact in the field.

Our current image dataset was produced from an experiment investigating higher order interactions/emergent species interactions. We have thousands of images from hundreds of containers/communities, and have already labeled some in Roboflow.

Please spread the word and DM me with any questions. Thanks much.

🌱 Kalindi Fonda, Andy Viet Huynh
Ross Gardiner (rg654@exeter.ac.uk)
2025-06-28 05:58:08

@Quentin Geissmann ?

Aakash Gupta (aakash@thinkevolveconsulting.com)
2025-07-07 13:49:08

check out this approach that i used for counting grains. maybe it can be adopted for your usecase

https://www.thinkevolveconsulting.com/2050-2-counting-grains/

Think Evolve Consultancy
Est. reading time
1 minute
Chase Rakowski (chaserak@gmail.com)
2025-07-07 15:20:00

Nice, thanks for sharing, Aakash.

❤️ Aakash Gupta
Klára Janoušková (Klara.janou@gmail.com)
2025-09-04 04:41:40

Hi! 👋

I would like to ask for help on behalf of my friend, who is trying to publish an AI4E dataset - we got some guidance from chatgpt but anyone with relevant experience with this would be greatly appreaciated, please let me know 🙂

Hello, our paper on computer vision for fish recognition is currently under review in an interdisciplinary journal. Among other things, our contribution is the dataset which we published on zenodo. However, the editor says that zenodo perhaps is not a good data platform and that we might look at the alternatives. Does anyone know why zenodo would not be a good platform? We picked zenodo as it is free and offers dataset publishing according to FAIR principles, which was required by the editor as well. Editor also requires us to publish ISO metadata. Has anyone had experience with this? What is the best way to create this ISO metadata and publish it on zenodo?

Dan Morris (agentmorris@gmail.com)
2025-09-04 09:32:25

Did the editor express specific concerns about Zenodo? Zenodo is widely accepted and checks all the boxes editors usually like.

Also, can you describe the dataset a bit? Is it new data, or is it a composite of datasets collected from the Web or from other datasets? About how large is it?

🙏 Klára Janoušková
Klára Janoušková (Klara.janou@gmail.com)
2025-09-08 05:23:51

Thanks @Dan Morris for the reply! And sorry for my late reply, I thought it is best @Josip Saric takes over as one of the authors, but then I forgot to add him to the slack last week 🙈

Josip Saric (josip.saric@fri.uni-lj.si)
2025-09-08 05:35:04

Hey Dan, thanks for the interest in our situation. Sorry for the late reply. No specific concerns about Zenodo were expressed. Perhaps the issue is that it does not support automatic metadata export in ISO format. My plan is to create the ISO metada xml with some other tool, and then upload it to the dataset repository. What do you think about this solution?

Dataset contains around 2000 high-res images of fish each labeled with 18 keypoints. The data has not been previously published and has been collected by one of the coauthors. It is like 12.0 GB in size.

Dan Morris (agentmorris@gmail.com)
2025-09-08 10:02:09

This sounds like a perfect fit for Zenodo: the only downsides of Zenodo are that (1) there's a size limit of 50GB (a little more by request IIURC) and (2) downloads are a little slow, which only matters when you get close to 50GB. Neither of these are an issue here. I agree that there's no benefit to having the site generate metadata automatically, for datasets that are updated infrequently it's almost definitely better to just upload the metadata you want. COCO is probably the most standard format for keypoint annotations, but any standard-ish format will be fine.

I asked all these questions because I'm happy to host this dataset on lila.science, but in this case, given the small size of the dataset, I think you're better off on zenodo where you have total control and don't have to go through me as an intermediate. But if I'm missing something and there's a reason LILA is a better fit than Zenodo, reach out to me at agentmorris@gmail.com .

Josip Saric (josip.saric@fri.uni-lj.si)
2025-09-09 03:14:26

Thank you for your thoughts. I had a look at your project, and it looks great! I think I already found some interesting datasets that we might find useful in our future work!

Maddie Cusimano (maddie@earthspecies.org)
2025-10-15 15:01:11

I’m wondering if anyone knows stats consultants who are familiar with standard practice in behavioral ecology and have good experience with analysing observational datasets

Anna Willoughby (arwill19@gmail.com)
2025-10-21 08:30:01

I'm working on my PhD in ecology doing stats on a field study. Happy to discuss approaches. Whats your question/data?

Maddie Cusimano (maddie@earthspecies.org)
2025-10-23 12:17:36

Hey thanks so much for being in touch! Our group has a lot of different datasets & questions, and so we were looking for someone who we might be able to check in with, in a somewhat consistent way

Lionel Hachemin (lhachemin@ifaw.org)
2025-11-10 08:50:05

Hi all,
Hope you're well!
Is there anyone able to help me in developping and training an AI-agent (probably on a LLM, such as Co-pilot) that would help in pushing internally within my organisation & guiding my team in using social science (according to our vision/framework) to tackle wildlife crime? Or do you have any recommendation? Any help would be appreciated!
Thanks!

Gerard (gerardcalvo26@gmail.com)
2025-11-10 11:23:54

Hi Lionel — this sounds like a really interesting direction! Could you share a bit more context?

  • What org are you with, and how is your social science framework currently documented or used?

  • What kinds of tasks do you imagine the AI supporting (e.g. staff training, intervention design, literature synthesis)?

  • When you say “pushing internally,” do you mean supporting adoption or decision-making?

  • Any constraints around data privacy given the wildlife-crime focus?

  • What’s your timeline and do you have any resources/budget allocated yet?

This will help clarify the best approach and whether I (or others here) might be able to help!

Keenan Johnson (keenan.johnson@gmail.com)
2025-12-04 02:16:39

Hey everyone! I realized that there wasn't a good awesome list for scientific ML, so I started one! Would appreciate any stars or pull requests for more resources! https://github.com/breadboardfoundry/awesome-ml-for-scientists

🙌 Yseult Hb, Joe Nash, Sonny Burniston
😎 Jon Van Oast, Sonny Burniston
Sara Beery (sara.beery@gmail.com)
2025-12-04 11:41:08

CV4Ecology 🙂

https://cv4ecology.caltech.edu/

🎉 Jon Van Oast, Keenan Johnson
Keenan Johnson (keenan.johnson@gmail.com)
2025-12-04 15:01:55

oh that's a great resource we should add! I'll do that now!

Keenan Johnson (keenan.johnson@gmail.com)
2025-12-04 15:55:31

Added!

Eriberto (eribertoosorio.eo@gmail.com)
2026-02-17 13:57:46

Hello everyone, I was looking for some resources on training a model to identify individuals on BirdNET. Are there any resources available here? Very new to slack so any directions would be very appreciated.

Sara Beery (sara.beery@gmail.com)
2026-02-17 14:27:49

@Sam Lapp :)

Benjamin Hoffman (benjaminsshoffman@gmail.com)
2026-02-17 17:38:34

@Inês Nolasco wrote a paper about individual id recently, not birdnet tho https://arxiv.org/pdf/2409.08673

👍 Eriberto, Owen Martin
Sam Lapp (sam.lapp@pitt.edu)
2026-02-17 18:55:11

Hi Eriberto, we actually have a tutorial notebook from today's workshop at ICTC that does exactly this!
https://colab.research.google.com/drive/1unHYpWmoFLjnErOszQyjF-7KzA9CB3N3
For more context you can also check out the workshop slides and other workshop materials
https://drive.google.com/drive/folders/1ybiRy1Wk2r5EswUeLAA2H4SqzCI0POKc
And this GitHub associated with my Ovenbird individual ID project
https://github.com/sammlapp/ovenbird-individual-recognition

Of course reach out if you have any questions or want to discuss your project

colab.research.google.com
👍 Eriberto
🐥 Kalindi Fonda
Eriberto (eribertoosorio.eo@gmail.com)
2026-02-18 09:45:28

Thanks a bunch everyone! @Sam Lapp would you potentially have any materials using the BirdNET analyzer gui? I have been attempting to use that with my recordings. My next step is using python and I will practice with the material you shared (I am very new to python).

Sam Lapp (sam.lapp@pitt.edu)
2026-02-18 09:47:56

I don't have experience with using the BirdNet gui for this, but it does provide support for generating embeddings

👍 Eriberto
Eriberto (eribertoosorio.eo@gmail.com)
2026-02-18 13:08:37

Thank you again! I will post my progress with BirdNet gui and try out your tutorial.

slackbot
2026-02-26 11:26:28

@Kate Reed joined #help_needed. They’re also new to AI for Conservation.

Taneea S Agrawaal (taneea.agrawaal@gmail.com)
2026-03-02 12:46:51

@Taneea S Agrawaal has joined the channel

slackbot
2026-03-02 13:59:15

@Rodrigo Oyanedel joined #help_needed. They’re also new to AI for Conservation.

Ronan Wallace (ronanlwallace@gmail.com)
2026-03-03 16:03:57

@Ronan Wallace has joined the channel

slackbot
2026-03-06 12:03:15

@Francisco Gonzalez joined #help_needed. They’re also new to AI for Conservation.

slackbot
2026-03-06 16:59:41

@Amanda Swayze-Rebeaud joined #help_needed. They’re also new to AI for Conservation.

slackbot
2026-03-09 10:50:18

@Greg White joined #help_needed. They’re also new to AI for Conservation.

Matt Weldy (matthewjweldy@gmail.com)
2026-03-10 14:52:35

Our organization is considering hiring a data architect (i.e., building AWS cloud data pipelines for multiple input sources and end products), but I have limited experience with that type of position. If anyone has experience in that position or has hired one, could you please DM me? I have a few questions I'd like to ask.

🌊 Kalindi Fonda
Sara Beery (sara.beery@gmail.com)
2026-03-10 15:20:18

@Jason Holmberg (Wild Me)?

Jason Holmberg (Wild Me) (holmbergius@gmail.com)
2026-03-10 15:25:32

@Matt Weldy Happy to talk: holmbergius@gmail.com

🧡 Sara Beery
👍 Matt Weldy
Matt Weldy (matthewjweldy@gmail.com)
2026-03-10 15:27:50

Thanks! Email heading your way soon.

Sara Beery (sara.beery@gmail.com)
2026-03-10 15:39:11

Being a total sap here, but I LOVE how much this community shows up to help each other

❤️ Carly Batist, Hayley Smith, Joe Nash
Matt Weldy (matthewjweldy@gmail.com)
2026-03-10 15:40:53

It really is pretty incredible!

Jason Holmberg (Wild Me) (holmbergius@gmail.com)
2026-03-10 15:20:30

@Jason Holmberg (Wild Me) has joined the channel

slackbot
2026-03-12 04:46:48

@Tedi Yankov joined #help_needed. They’re also new to AI for Conservation.

Lucas Mateo Waldburger (lwaldburger@berkeley.edu)
2026-03-12 19:12:22

@Lucas Mateo Waldburger has joined the channel

Edwin Arkel Rios (edwinarkelrios.ee08@nycu.edu.tw)
2026-03-15 07:04:56

@Edwin Arkel Rios has joined the channel

Eriberto (eribertoosorio.eo@gmail.com)
2026-06-23 11:57:52

Hello everyone, I posted a message some time ago asking for assistance for reidentification of individual parrots using birdnet through python and wondering if that can be reshared as I can no longer access the link. I also had another question. Does anyone have any guidance on building a strong computer to do machine learning and using the birdNET analyzer GUI?

:dad_parrot: ash
Shir Bar (shirbar@tauex.tau.ac.il)
2026-06-23 12:01:11

Re-your old post, you can find it in the message archive 🙂 http://beerylab.csail.mit.edu/AIforConservationArchive/

Eriberto (eribertoosorio.eo@gmail.com)
2026-06-23 12:06:45

Thank you very much!

🙂 Shir Bar
Sara Beery (sara.beery@gmail.com)
2026-06-23 12:46:00

Good reminder that we need to re-up the archive!

👍 Shir Bar
Sam Lapp (sam.lapp@pitt.edu)
2026-06-24 11:09:14

Hi @Eriberto, as far as I know the BirdNET analyzer GUI does not leverage GPU hardware. Therefore, having a powerful computer won’t speed up your workflow very much. Most modern laptops will work decently well. For larger throughput, the github.com/kitzeslab/bioacoustics-model-zoo provides gpu-compatible embedding models with a Python API, and the Dipper app has Beta functionality for running these workflows from a desktop gui

Eriberto (eribertoosorio.eo@gmail.com)
2026-06-30 16:26:07

Hello @Sam Lapp, thanks so much for that information. I remember seeing that github from your lab and I plan to get into that as I learn more python. I will look into the dipper app as well. Thanks!

Jorge Galindo (jorgegalinmor@gmail.com)
2026-06-29 15:16:02

Hi everyone! As part of my masters thesis I created this survey comparing the explainability of two re-identification models and two explainability techniques, applied to identifying lynx individuals. If you could fill it/share it with some colleagues who might be able to that'd be great! Especially people with experience in individual recognition and in CV, but it asks at the end the level of familiarity with each topic tally.so/r/MeGyMY

Tally Forms
Jason Holmberg (Wild Me) (holmbergius@gmail.com)
2026-06-29 15:18:05

Happy to work with you on this. We just implemented PairX to explain MiewID results. Happy to share our thinking and benefit from yours. Looks like a great survey!

🎉 Jon Van Oast
🙌 Jorge Galindo
Jorge Galindo (jorgegalinmor@gmail.com)
2026-06-29 15:34:26

Nice! Here, I'm comparing CRP and HiResCAM on MiewID and MegaDescriptor (swin based). I will take a look at PairX, I didn't know it, but I just found the paper for it. Happy to be in touch and share thoughts yes, thank you!

Dan Morris (agentmorris@gmail.com)
2026-06-29 16:01:06

@Daniel Thornton

slackbot
None

[ MESSAGE TEXT EMPTY ]