Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .github/workflows/validate-zenodo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Check zenodo metadata

on:
push:
paths:
- '.zenodo.json'
- '.github/workflows/validate-zenodo.yaml'

jobs:
check-zenodo-metadata:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: '24'
- name: Install dependencies
run: npm install zenodraft@0.14.1
- name: Check .zenodo.json file
run: |
npx zenodraft metadata validate .zenodo.json
127 changes: 127 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
{
"creators": [
{
"name": "Liu, Fangxun",
"affiliation": "The Ohio State University",
"orcid": "0009-0008-8508-2776"
},
{
"name": "Rayeed, S M",
"affiliation": "Rensselaer Polytechnic Institute"
},
{
"name": "Stevens, Samuel",
"affiliation": "The Ohio State University"
},
{
"name": "East, Alyson",
"affiliation": "The University of Maine"
},
{
"name": "Chiang, Cheng Hsuan",
"affiliation": "The Ohio State University"
},
{
"name": "Lee, Colin",
"affiliation": "The Ohio State University"
},
{
"name": "Yi, Daniel",
"affiliation": "The Ohio State University"
},
{
"name": "Yang, Junke",
"affiliation": "The Ohio State University"
},
{
"name": "Naik, Tejas",
"affiliation": "The Ohio State University"
},
{
"name": "Wang, Ziyi",
"affiliation": "The Ohio State University"
},
{
"name": "Kilrain, Connor",
"affiliation": "The Ohio State University"
},
{
"name": "Buckwalter, Elijah H.",
"affiliation": "The Ohio State University"
},
{
"name": "Hou, Jiacheng",
"affiliation": "The Ohio State University"
},
{
"name": "Bueno, Saul Ibaven",
"affiliation": "The Ohio State University"
},
{
"name": "Wang, Shuheng",
"affiliation": "The Ohio State University"
},
{
"name": "Ma, Xinyue",
"affiliation": "The Ohio State University"
},
{
"name": "Liu, Yifan",
"affiliation": "The Ohio State University"
},
{
"name": "Tao, Zhiyuan",
"affiliation": "The Ohio State University"
},
{
"name": "Zhang, Ziheng",
"affiliation": "The Ohio State University"
},
{
"name": "Sokol, Eric",
"affiliation": "National Ecological Observatory Network (NEON), Battelle"
},
{
"name": "Belitz, Michael",
"affiliation": "Michigan State University"
},
{
"name": "Record, Sydne",
"affiliation": "The University of Maine"
},
{
"name": "Stewart, Charles V.",
"affiliation": "Rensselaer Polytechnic Institute"
},
{
"name": "Chao, Wei-Lun",
"affiliation": "The Ohio State University"
}
],
"description": "Pipeline for processing large-scale tray images of pinned beetles: detect specimens, optionally sort and crop with metadata matching, and produce fine-grained morphological segmentation (5-class or 9-class). It uses an open-vocabulary detector (Grounding DINO), a vision-language model (LLaVA-NeXT) for verification, and fine-tuned Mask2Former for transformer-based part segmentation and downstream morphological analysis.",
"keywords": [
"deep learning",
"computer vision",
"image processing",
"object detection",
"image segmentation",
"entomology",
"imageomics"
],
"license": {
"id": "MIT"
},
"publication_date": "2026-07-07",
"title": "BeetleFlow: An Integrative Deep Learning Pipeline for Beetle Image Processing",
"version": "1.0.0",
"grants": [
{
"id": "021nxhr62::2118240"
}
],
"references": [
"East, A., Belitz, M., Cotton, L., Dominguez, J., Betancourt, I., Rayeed, S. M., Liu, F., Carlyn, D., Kilrain, C., Wu, J., Earl, C., Lapp, H., Perry, K. I., Stewart, C., Thompson, M. J., Campolongo, E. G., Chao, W.-L., Sokol, E. R., & Record, S. (2026). Beetles as Sentinel Taxa: Predicting drought conditions from NEON specimen imagery (Revision 5026be7). Hugging Face. https://doi.org/10.57967/hf/8716",
"National Ecological Observatory Network. (2025). Ground beetles sampled from pitfall traps (DP1.10022.001). https://doi.org/10.48443/CD21-Q875",
"National Ecological Observatory Network. (2025). NEON Field Site Metadata. Retrieved June 25, 2025, from https://www.neonscience.org/field-sites/exports/NEON_Field_Site_Metadata_20250625"
]
}
145 changes: 145 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
cff-version: 1.2.0
message: "If you find this software helpful in your research, please cite both the software and our paper."

title: "BeetleFlow: An Integrative Deep Learning Pipeline for Beetle Image Processing"
abstract: >-
Pipeline for processing large-scale tray images of pinned beetles: detect specimens,
optionally sort and crop with metadata matching, and produce fine-grained morphological
segmentation (5-class or 9-class). It uses an open-vocabulary detector (Grounding DINO),
a vision-language model (LLaVA-NeXT) for verification, and fine-tuned Mask2Former
for transformer-based part segmentation and downstream morphological analysis.

type: software
repository-code: "https://github.com/Imageomics/BeetleFlow"
license: MIT

date-released: 2026-07-07
version: 1.0.0
identifiers:
- description: "The GitHub release URL of tag 1.0.0."
type: url
value: "https://github.com/Imageomics/BeetleFlow/releases/tag/1.0.0"

authors:
- family-names: Liu
given-names: Fangxun
orcid: "https://orcid.org/0009-0008-8508-2776"
- family-names: Rayeed
given-names: "S M"
- family-names: Stevens
given-names: Samuel
- family-names: East
given-names: Alyson
- family-names: Chiang
given-names: "Cheng Hsuan"
- family-names: Lee
given-names: Colin
- family-names: Yi
given-names: Daniel
- family-names: Yang
given-names: Junke
- family-names: Naik
given-names: Tejas
- family-names: Wang
given-names: Ziyi
- family-names: Kilrain
given-names: Connor
- family-names: Buckwalter
given-names: "Elijah H."
- family-names: Hou
given-names: Jiacheng
- family-names: Bueno
given-names: "Saul Ibaven"
- family-names: Wang
given-names: Shuheng
- family-names: Ma
given-names: Xinyue
- family-names: Liu
given-names: Yifan
- family-names: Tao
given-names: Zhiyuan
- family-names: Zhang
given-names: Ziheng
- family-names: Sokol
given-names: Eric
- family-names: Belitz
given-names: Michael
- family-names: Record
given-names: Sydne
- family-names: Stewart
given-names: "Charles V."
- family-names: Chao
given-names: "Wei-Lun"

keywords:
- deep learning
- computer vision
- image processing
- object detection
- image segmentation
- entomology
- imageomics

preferred-citation:
type: conference-paper
title: "BeetleFlow: An Integrative Deep Learning Pipeline for Beetle Image Processing"
authors:
- family-names: Liu
given-names: Fangxun
orcid: "https://orcid.org/0009-0008-8508-2776"
- family-names: Rayeed
given-names: "S M"
- family-names: Stevens
given-names: Samuel
- family-names: East
given-names: Alyson
- family-names: Chiang
given-names: "Cheng Hsuan"
- family-names: Lee
given-names: Colin
- family-names: Yi
given-names: Daniel
- family-names: Yang
given-names: Junke
- family-names: Naik
given-names: Tejas
- family-names: Wang
given-names: Ziyi
- family-names: Kilrain
given-names: Connor
- family-names: Buckwalter
given-names: "Elijah H."
- family-names: Hou
given-names: Jiacheng
- family-names: Bueno
given-names: "Saul Ibaven"
- family-names: Wang
given-names: Shuheng
- family-names: Ma
given-names: Xinyue
- family-names: Liu
given-names: Yifan
- family-names: Tao
given-names: Zhiyuan
- family-names: Zhang
given-names: Ziheng
- family-names: Sokol
given-names: Eric
- family-names: Belitz
given-names: Michael
- family-names: Record
given-names: Sydne
- family-names: Stewart
given-names: "Charles V."
- family-names: Chao
given-names: "Wei-Lun"
keywords:
- deep learning
- computer vision
- image processing
- object detection
- image segmentation
- entomology
- imageomics
collection-title: "NeurIPS 2025 Workshop for Imageomics: Discovering Biological Knowledge from Images Using AI"
year: 2025
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- [ ] Add installation guide

## 📊 Dataset
Beetle part segmentation dataset is available [here](data/) (both 5-class and 9-class).
Dataset for beetle part segmentation is available [here](data/) (both 5-class and 9-class).

## 🧑‍💻 Usage

Expand Down Expand Up @@ -46,6 +46,8 @@ Though the code in this repository is shared under an [MIT License](https://gith

## Acknowledgments

This work was in part conceived at [Funcapalooza](https://github.com/Imageomics/FuncaPalooza-2025).

This work uses data from the [Beetles as Sentinel Taxa: Predicting drought conditions from NEON specimen imagery dataset](https://huggingface.co/datasets/imageomics/sentinel-beetles). If you make use of the data, please be sure to cite the original source:

BibTeX:
Expand All @@ -55,10 +57,10 @@ BibTeX:
S M Rayeed and Fangxun Liu and David Carlyn and Connor Kilrain and Jiaman Wu and Chandra Earl and Hilmar Lapp
and Kayla I. Perry and Charles Stewart and Matthew J. Thompson and Elizabeth G. Campolongo and Wei-Lun Chao and
Eric R. Sokol and Sydne Record},
title = {Beetles as Sentinel Taxa: Predicting drought conditions from {NEON} specimen imagery},
year = {2025},
title = {Beetles as Sentinel Taxa: Predicting drought conditions from {NEON} specimen imagery (Revision 5026be7)},
year = {2026},
url = {https://huggingface.co/datasets/imageomics/sentinel-beetles},
doi = {<doi once generated>},
doi = {10.57967/hf/8716},
publisher = {Hugging Face}
}
```
Expand Down
21 changes: 21 additions & 0 deletions requirements_detection.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
python>=3.9
numpy>=1.26
pandas>=2.2
torch>=2.4
torchvision>=0.19
accelerate>=0.24
transformers>=4.40.0
huggingface-hub>=0.34
tokenizers>=0.21
safetensors>=0.5
Pillow>=10.3
opencv-python>=4.8
matplotlib>=3.7
bitsandbytes>=0.43.0
scipy>=1.11
tqdm>=4.66
PyYAML>=6.0
requests>=2.32
packaging>=24.1
typing_extensions>=4.12
pycocotools>=2.0.7
Loading