conservationtechlab / animl-py

Animl comprises a variety of machine learning tools for analyzing ecological data. This Python package includes a set of functions to classify subjects within camera trap field data and can handle both images and videos.
MIT License
6 stars 3 forks source link

Labeled Box #11

Closed kgarwoodsdzwa closed 1 year ago

kgarwoodsdzwa commented 1 year ago

The function drawBoundingBoxes within labeled box.ipynb within src/animl is a Jupyter Notebooks file format, but it is meant to be a .py function so that it can be an accessible tool. It should pass flake8 and pylint and have docstrings.

iingram commented 1 year ago
srinidhi98 commented 1 year ago

Sounds good, putting in a separate folder(example_applications/example_script) in src/animl might do. and later include in README.

iingram commented 1 year ago

I think only package files should go in src/animal I also just noticed that an examples folder has been created at the highest level of the repo so that seems like a good place to put this example script. And, on that note, the example Jupyter notebooks likely belong there, too.

iingram commented 1 year ago

I know I said I would capture some of our (Nidhi and my) Zoom discussion things into this GitHub discussion. Not sure I remember all the things :-). But here's some:

1) as you pointed out, beyond creating the example script that uses the box plotting tool we are going to need some way to provide some data (images and ((df and/or csv) or script that generates df and/or csv) for the script to work on. 2) ideally, eventually, we'd serve some example images from somewhere not in this repo (in order to keep this repo clean of heavy, non-version-control-needing binaries) and have a data-download script that gets that data that would be run by a user that wants to run these example scripts.
3) Right now, some image data has been committed into the repo (later we should actually undo this and rebase to clean things up but let's leave that for another time) so we could just work with that to get started. 4) as sort of alluded to in 1), we would also want an example script that runs the whole AniML pipeline on a given set of data (with an example config file that is set to work with the example data downloaded with the data-download script) so that there would be no need to provide an example dataframe or csv for the plotbox_example.py script as these would just be automatically generated. 5) NOTABLY: that all said, I think our plan at the end of the discussion was to focus this feature branch and pull request on just creating the plot_boxes.py module in the package files and putting the function from the Jupyter notebook in that module and then (in a separate commit or series of commits) linting that module (our baseline is passing flake8 and pylint).

We would then address 1), 2), and 4) in follow-on issues/PRs.

So, in summary, @srinidhi98 just go ahead and do 5) on your feature branch (you might want to make a fresh one branching from main so that your test commits don't end up in the final history) and once it's ready, submit a PR listing me and Katie as reviewers since we are filling in while Kyra is gone. You might make a "fake" csv file with a single row (or maybe even two rows) that references one/two of the images that are currently in the repo (box doesn't have to be in the right place since it is just fake testing data) so that you have something to test the function on with the fringe benefit that you'll get a sense of what is included in each row of the AniML pandas dataframe and thus the CSV.

iingram commented 1 year ago

Some quick notes on our meeting just now:

iingram commented 1 year ago

This issue was resolved by PR #12