Addax-Data-Science commited on
Commit
17a8167
·
verified ·
1 Parent(s): b608b9c

Upload 2 files

Browse files
Files changed (2) hide show
  1. inference.py +237 -0
  2. taxonomy.csv +218 -0
inference.py ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ ModelInference for the addax-sppnet model family.
3
+
4
+ Architecture: SpeciesNet GraphModule backbone (frozen) + a thin nn.Linear
5
+ head fine-tuned per region. Originally written for AddaxAI's legacy
6
+ classify_detections.py (Peter van Lunteren, 13 May 2025); ported here to
7
+ the WebUI's class-based ModelInference interface.
8
+
9
+ Files expected in the model directory:
10
+ - <model_fname>.pt fine-tuned head checkpoint, e.g. final-20260317.pt
11
+ - <backbone>.pt frozen SpeciesNet backbone, one of:
12
+ - always_crop_99710272_22x8_v12_epoch_00148.pt
13
+ - full_image_88545560_22x8_v12_epoch_00153.pt
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ # Allow loading checkpoints saved on a Windows runner on a POSIX machine.
19
+ import pathlib
20
+ import platform
21
+ from pathlib import Path
22
+
23
+ import numpy as np
24
+ import torch
25
+ import torch.nn as nn
26
+ import torch.nn.functional as F
27
+ from PIL import Image
28
+ from torchvision import transforms
29
+
30
+ if platform.system() != "Windows":
31
+ pathlib.WindowsPath = pathlib.PosixPath # type: ignore[assignment]
32
+
33
+ # Don't fail on truncated images during inference.
34
+ from PIL import ImageFile
35
+
36
+ ImageFile.LOAD_TRUNCATED_IMAGES = True
37
+
38
+
39
+ _BACKBONE_FILENAMES = (
40
+ "always_crop_99710272_22x8_v12_epoch_00148.pt",
41
+ "full_image_88545560_22x8_v12_epoch_00153.pt",
42
+ )
43
+
44
+
45
+ def _load_fx_checkpoint(weights_path: Path, map_location: str = "cpu") -> nn.Module:
46
+ """Load a SpeciesNet onnx2torch GraphModule.
47
+
48
+ The backbone is shipped as a torch.fx GraphModule. PyTorch 2.4+
49
+ requires `reduce_graph_module` to be in the safe-globals allowlist
50
+ when loading with `weights_only=True`; older versions don't have
51
+ this concept. Try both paths.
52
+ """
53
+ try:
54
+ from torch.fx.graph_module import reduce_graph_module
55
+ from torch.serialization import add_safe_globals
56
+ add_safe_globals([reduce_graph_module])
57
+ except Exception:
58
+ pass
59
+
60
+ try:
61
+ obj = torch.load(weights_path, map_location=map_location, weights_only=True)
62
+ except Exception:
63
+ obj = torch.load(weights_path, map_location=map_location, weights_only=False)
64
+
65
+ if hasattr(obj, "state_dict") and hasattr(obj, "forward"):
66
+ return obj
67
+ raise ValueError(f"{weights_path} is not a torch.nn.Module GraphModule")
68
+
69
+
70
+ class _FXClassifier(nn.Module):
71
+ """SpeciesNet backbone (frozen) + linear head."""
72
+
73
+ def __init__(
74
+ self,
75
+ backbone: nn.Module,
76
+ num_classes: int,
77
+ img_size: int = 480,
78
+ input_layout: str = "nhwc",
79
+ ) -> None:
80
+ super().__init__()
81
+ self.backbone = backbone
82
+ self.input_layout = input_layout.lower()
83
+
84
+ for p in self.backbone.parameters():
85
+ p.requires_grad = False
86
+ self.backbone.eval()
87
+
88
+ # Probe the backbone to discover output feature size at this
89
+ # img_size + layout combo, so the head matches exactly.
90
+ with torch.no_grad():
91
+ x = torch.zeros(1, 3, img_size, img_size)
92
+ if self.input_layout == "nhwc":
93
+ x = x.permute(0, 2, 3, 1).contiguous()
94
+ z = self.backbone(x)
95
+ z = self._pool(z)
96
+ in_features = z.shape[1]
97
+
98
+ self.head = nn.Linear(in_features, num_classes)
99
+
100
+ @staticmethod
101
+ def _pool(z: torch.Tensor) -> torch.Tensor:
102
+ if z.ndim == 4:
103
+ return F.adaptive_avg_pool2d(z, 1).flatten(1)
104
+ if z.ndim == 3:
105
+ return z.mean(dim=1)
106
+ return z.flatten(1)
107
+
108
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
109
+ if self.input_layout == "nhwc":
110
+ x = x.permute(0, 2, 3, 1).contiguous()
111
+ z = self.backbone(x)
112
+ z = self._pool(z)
113
+ return self.head(z)
114
+
115
+
116
+ class ModelInference:
117
+ """ModelInference for the addax-sppnet family (SpeciesNet backbone + linear head)."""
118
+
119
+ def __init__(self, model_dir: Path, model_path: Path) -> None:
120
+ self.model_dir = Path(model_dir)
121
+ self.model_path = Path(model_path)
122
+ self.model: _FXClassifier | None = None
123
+ self.device: torch.device | None = None
124
+ self._class_names: list[str] = []
125
+ self._preprocess: transforms.Compose | None = None
126
+
127
+ # ------------------------------------------------------------------
128
+ # Required interface
129
+ # ------------------------------------------------------------------
130
+
131
+ def check_gpu(self) -> bool:
132
+ try:
133
+ if torch.backends.mps.is_built() and torch.backends.mps.is_available():
134
+ return True
135
+ except Exception:
136
+ pass
137
+ return torch.cuda.is_available()
138
+
139
+ def load_model(self) -> None:
140
+ if self.check_gpu():
141
+ self.device = torch.device(
142
+ "mps" if torch.backends.mps.is_available() else "cuda"
143
+ )
144
+ else:
145
+ self.device = torch.device("cpu")
146
+
147
+ # Load fine-tuned head checkpoint.
148
+ try:
149
+ checkpoint = torch.load(
150
+ self.model_path, map_location=self.device, weights_only=True
151
+ )
152
+ except Exception:
153
+ checkpoint = torch.load(
154
+ self.model_path, map_location=self.device, weights_only=False
155
+ )
156
+
157
+ # Resolve backbone path. The fine-tuned model ships alongside
158
+ # one of two known backbone files, depending on the recipe.
159
+ backbone_path: Path | None = None
160
+ for name in _BACKBONE_FILENAMES:
161
+ candidate = self.model_dir / name
162
+ if candidate.exists():
163
+ backbone_path = candidate
164
+ break
165
+ if backbone_path is None:
166
+ raise FileNotFoundError(
167
+ "Backbone weights not found. Expected one of "
168
+ f"{_BACKBONE_FILENAMES} in {self.model_dir}."
169
+ )
170
+
171
+ backbone = _load_fx_checkpoint(backbone_path, map_location="cpu")
172
+ model = _FXClassifier(
173
+ backbone=backbone,
174
+ num_classes=checkpoint["num_classes"],
175
+ img_size=checkpoint["img_size"],
176
+ input_layout=checkpoint["input_layout"],
177
+ )
178
+ model.load_state_dict(checkpoint["model"])
179
+ self.model = model.to(self.device).eval()
180
+
181
+ self._class_names = list(checkpoint["class_names"])
182
+
183
+ norm = checkpoint["normalize"]
184
+ img_size = checkpoint["img_size"]
185
+ self._preprocess = transforms.Compose([
186
+ transforms.Resize((img_size, img_size), antialias=True),
187
+ transforms.ToTensor(),
188
+ transforms.Normalize(mean=norm["mean"], std=norm["std"]),
189
+ ])
190
+
191
+ def get_crop(
192
+ self, image: Image.Image, bbox: tuple[float, float, float, float]
193
+ ) -> Image.Image:
194
+ """Crop the bbox region. SpeciesNet head was trained on tight crops."""
195
+ W, H = image.size
196
+ x, y, w, h = bbox
197
+ left = max(0, int(round(x * W)))
198
+ top = max(0, int(round(y * H)))
199
+ right = min(W, int(round((x + w) * W)))
200
+ bottom = min(H, int(round((y + h) * H)))
201
+ if right <= left or bottom <= top:
202
+ return image
203
+ return image.crop((left, top, right, bottom))
204
+
205
+ def get_classification(self, crop: Image.Image) -> list[list]:
206
+ """Per-image inference. Returns [[name, prob], ...] for all classes."""
207
+ assert self.model is not None and self._preprocess is not None
208
+ if crop.mode != "RGB":
209
+ crop = crop.convert("RGB")
210
+ tensor = self._preprocess(crop).unsqueeze(0).to(self.device)
211
+ with torch.no_grad():
212
+ probs = F.softmax(self.model(tensor), dim=1).cpu().numpy()[0]
213
+ return [[self._class_names[i], float(probs[i])] for i in range(len(probs))]
214
+
215
+ def get_class_names(self) -> dict[str, str]:
216
+ """1-indexed mapping {id: class_name} for the output JSON."""
217
+ return {str(i + 1): name for i, name in enumerate(self._class_names)}
218
+
219
+ # ------------------------------------------------------------------
220
+ # Optional batch interface (5-15x GPU speedup vs per-crop calls)
221
+ # ------------------------------------------------------------------
222
+
223
+ def get_tensor(self, crop: Image.Image) -> np.ndarray:
224
+ assert self._preprocess is not None
225
+ if crop.mode != "RGB":
226
+ crop = crop.convert("RGB")
227
+ return self._preprocess(crop).numpy()
228
+
229
+ def classify_batch(self, batch: np.ndarray) -> list[list[list]]:
230
+ assert self.model is not None
231
+ tensor = torch.from_numpy(batch).to(self.device)
232
+ with torch.no_grad():
233
+ probs = F.softmax(self.model(tensor), dim=1).cpu().numpy()
234
+ return [
235
+ [[self._class_names[j], float(p[j])] for j in range(len(p))]
236
+ for p in probs
237
+ ]
taxonomy.csv ADDED
@@ -0,0 +1,218 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ model_class,class,order,family,genus,species
2
+ amphibians,amphibia,,,,
3
+ hawks and eagles,aves,accipitriformes,accipitridae,,
4
+ goshawks and sparrowhawks,aves,accipitriformes,accipitridae,accipiter,
5
+ brown goshawk,aves,accipitriformes,accipitridae,accipiter,fasciatus
6
+ wedge-tailed eagle,aves,accipitriformes,accipitridae,aquila,audax
7
+ whistling kite,aves,accipitriformes,accipitridae,haliastur,sphenurus
8
+ pacific black duck,aves,anseriformes,anatidae,anas,superciliosa
9
+ cape barren goose,aves,anseriformes,anatidae,cereopsis,novaehollandiae
10
+ australian wood duck,aves,anseriformes,anatidae,chenonetta,jubata
11
+ black swan,aves,anseriformes,anatidae,cygnus,atratus
12
+ australian owlet-nightjar,aves,apodiformes,aegothelidae,aegotheles,cristatus
13
+ spotted nightjar,aves,caprimulgiformes,caprimulgidae,eurostopodus,argus
14
+ tawny frogmouth,aves,caprimulgiformes,podargidae,podargus,strigoides
15
+ emu,aves,casuariiformes,dromaiidae,dromaius,novaehollandiae
16
+ hooded plover,aves,charadriiformes,charadriidae,thinornis,cucullatus
17
+ masked lapwing,aves,charadriiformes,charadriidae,vanellus,miles
18
+ silver gull,aves,charadriiformes,laridae,chroicocephalus,novaehollandiae
19
+ pacific gull,aves,charadriiformes,laridae,larus,pacificus
20
+ latham's snipe,aves,charadriiformes,scolopacidae,gallinago,hardwickii
21
+ painted button-quail,aves,charadriiformes,turnicidae,turnix,varius
22
+ shorebirds spp,aves,charadriiformes,,,
23
+ peaceful dove,aves,columbiformes,columbidae,geopelia,placida
24
+ wonga pigeon,aves,columbiformes,columbidae,leucosarcia,melanoleuca
25
+ crested pigeon,aves,columbiformes,columbidae,ocyphaps,lophotes
26
+ common bronzewing,aves,columbiformes,columbidae,phaps,chalcoptera
27
+ brush bronzewing,aves,columbiformes,columbidae,phaps,elegans
28
+ laughing kookaburra,aves,coraciiformes,alcedinidae,dacelo,novaeguineae
29
+ fan-tailed cuckoo,aves,cuculiformes,cuculidae,cacomantis,flabelliformis
30
+ shining bronze-cuckoo,aves,cuculiformes,cuculidae,chrysococcyx,lucidus
31
+ brown falcon,aves,falconiformes,falconidae,falco,berigora
32
+ malleefowl,aves,galliformes,megapodiidae,leipoa,ocellata
33
+ brown quail,aves,galliformes,phasianidae,synoicus,ypsilophorus
34
+ eurasian coot,aves,gruiformes,rallidae,fulica,atra
35
+ black-tailed native-hen,aves,gruiformes,rallidae,gallinula,ventralis
36
+ buff-banded rail,aves,gruiformes,rallidae,gallirallus,philippensis
37
+ purple swamphen,aves,gruiformes,rallidae,porphyrio,melanotus
38
+ yellow-rumped thornbill,aves,passeriformes,acanthizidae,acanthiza,chrysorrhoa
39
+ striated thornbill,aves,passeriformes,acanthizidae,acanthiza,lineata
40
+ yellow thornbill,aves,passeriformes,acanthizidae,acanthiza,nana
41
+ brown thornbill,aves,passeriformes,acanthizidae,acanthiza,pusilla
42
+ buff-rumped thornbill,aves,passeriformes,acanthizidae,acanthiza,reguloides
43
+ chestnut-rumped thornbill,aves,passeriformes,acanthizidae,acanthiza,uropygialis
44
+ southern whiteface,aves,passeriformes,acanthizidae,aphelocephala,leucopsis
45
+ shy heathwren,aves,passeriformes,acanthizidae,calamanthus,cautus
46
+ chestnut-rumped heathwren,aves,passeriformes,acanthizidae,calamanthus,pyrrhopygius
47
+ brown gerygone,aves,passeriformes,acanthizidae,gerygone,mouki
48
+ pilotbird,aves,passeriformes,acanthizidae,pycnoptilus,floccosus
49
+ speckled warbler,aves,passeriformes,acanthizidae,pyrrholaemus,sagittatus
50
+ white-browed scrubwren,aves,passeriformes,acanthizidae,sericornis,frontalis
51
+ weebill,aves,passeriformes,acanthizidae,smicrornis,brevirostris
52
+ dusky woodswallow,aves,passeriformes,artamidae,artamus,cyanopterus
53
+ masked woodswallow,aves,passeriformes,artamidae,artamus,personatus
54
+ white-browed woodswallow,aves,passeriformes,artamidae,artamus,superciliosus
55
+ red-browed treecreeper,aves,passeriformes,climacteridae,climacteris,erythrops
56
+ brown treecreeper,aves,passeriformes,climacteridae,climacteris,picumnus
57
+ white-throated treecreeper,aves,passeriformes,climacteridae,cormobates,leucophaea
58
+ white-winged chough,aves,passeriformes,corcoracidae,corcorax,melanoramphos
59
+ apostlebird,aves,passeriformes,corcoracidae,struthidea,cinerea
60
+ ravens and crows,aves,passeriformes,corvidae,,
61
+ australian raven,aves,passeriformes,corvidae,corvus,coronoides
62
+ pied butcherbird,aves,passeriformes,cracticidae,cracticus,nigrogularis
63
+ grey butcherbird,aves,passeriformes,cracticidae,cracticus,torquatus
64
+ australian magpie,aves,passeriformes,artamidae,gymnorhina,tibicen
65
+ pied currawong,aves,passeriformes,cracticidae,strepera,graculina
66
+ grey currawong,aves,passeriformes,cracticidae,strepera,versicolor
67
+ red-browed finch,aves,passeriformes,estrildidae,neochmia,temporalis
68
+ european goldfinch,aves,passeriformes,fringillidae,carduelis,carduelis
69
+ superb fairy-wren,aves,passeriformes,maluridae,malurus,cyaneus
70
+ splendid fairy-wren,aves,passeriformes,maluridae,malurus,splendens
71
+ spiny-cheeked honeyeater,aves,passeriformes,meliphagidae,acanthagenys,rufogularis
72
+ eastern spinebill,aves,passeriformes,meliphagidae,acanthorhynchus,tenuirostris
73
+ red wattlebird,aves,passeriformes,meliphagidae,anthochaera,carunculata
74
+ little wattlebird,aves,passeriformes,meliphagidae,anthochaera,chrysoptera
75
+ yellow-faced honeyeater,aves,passeriformes,meliphagidae,caligavis,chrysops
76
+ singing honeyeater,aves,passeriformes,meliphagidae,gavicalis,virescens
77
+ tawny-crowned honeyeater,aves,passeriformes,meliphagidae,gliciphila,melanops
78
+ yellow-tufted honeyeater,aves,passeriformes,meliphagidae,lichenostomus,melanops
79
+ noisy miner,aves,passeriformes,meliphagidae,manorina,melanocephala
80
+ brown-headed honeyeater,aves,passeriformes,meliphagidae,melithreptus,brevirostris
81
+ white-naped honeyeater,aves,passeriformes,meliphagidae,melithreptus,lunatus
82
+ white-eared honeyeater,aves,passeriformes,meliphagidae,nesoptilotis,leucotis
83
+ new holland honeyeater,aves,passeriformes,meliphagidae,phylidonyris,novaehollandiae
84
+ crescent honeyeater,aves,passeriformes,meliphagidae,phylidonyris,pyrrhopterus
85
+ white-plumed honeyeater,aves,passeriformes,meliphagidae,ptilotula,penicillata
86
+ white-fronted honeyeater,aves,passeriformes,meliphagidae,purnella,albifrons
87
+ superb lyrebird,aves,passeriformes,menuridae,menura,novaehollandiae
88
+ magpie-lark,aves,passeriformes,monarchidae,grallina,cyanoleuca
89
+ restless flycatcher,aves,passeriformes,monarchidae,myiagra,inquieta
90
+ australian pipit,aves,passeriformes,motacillidae,anthus,australis
91
+ grey shrike-thrush,aves,passeriformes,pachycephalidae,colluricincla,harmonica
92
+ olive whistler,aves,passeriformes,pachycephalidae,pachycephala,olivacea
93
+ golden whistler,aves,passeriformes,pachycephalidae,pachycephala,pectoralis
94
+ spotted pardalote,aves,passeriformes,pardalotidae,pardalotus,punctatus
95
+ southern scrub-robin,aves,passeriformes,petroicidae,drymodes,brunneopygia
96
+ eastern yellow robin,aves,passeriformes,petroicidae,eopsaltria,australis
97
+ hooded robin,aves,passeriformes,petroicidae,melanodryas,cucullata
98
+ jacky winter,aves,passeriformes,petroicidae,microeca,fascinans
99
+ scarlet robin,aves,passeriformes,petroicidae,petroica,boodang
100
+ flame robin,aves,passeriformes,petroicidae,petroica,phoenicea
101
+ pink robin,aves,passeriformes,petroicidae,petroica,rodinogaster
102
+ rose robin,aves,passeriformes,petroicidae,petroica,rosea
103
+ white-browed babbler,aves,passeriformes,pomatostomidae,pomatostomus,superciliosus
104
+ chestnut quail-thrush,aves,passeriformes,psophodidae,cinclosoma,castanotum
105
+ spotted quail-thrush,aves,passeriformes,psophodidae,cinclosoma,punctatum
106
+ eastern whipbird,aves,passeriformes,psophodidae,psophodes,olivaceus
107
+ satin bowerbird,aves,passeriformes,ptilonorhynchidae,ptilonorhynchus,violaceus
108
+ grey fantail,aves,passeriformes,rhipiduridae,rhipidura,albiscapa
109
+ willie wagtail,aves,passeriformes,rhipiduridae,rhipidura,leucophrys
110
+ rufous fantail,aves,passeriformes,rhipiduridae,rhipidura,rufifrons
111
+ common starling,aves,passeriformes,sturnidae,sturnus,vulgaris
112
+ common blackbird,aves,passeriformes,turdidae,turdus,merula
113
+ bassian thrush,aves,passeriformes,turdidae,zoothera,lunulata
114
+ silvereye,aves,passeriformes,zosteropidae,zosterops,lateralis
115
+ white-faced heron,aves,pelecaniformes,ardeidae,egretta,novaehollandiae
116
+ australian white ibis,aves,pelecaniformes,threskiornithidae,threskiornis,molucca
117
+ short-tailed shearwater,aves,procellariiformes,procellariidae,puffinus,tenuirostris
118
+ yellow-tailed black-cockatoo,aves,psittaciformes,cacatuidae,zanda,funerea
119
+ australian king parrot,aves,psittaciformes,psittacidae,alisterus,scapularis
120
+ australian ringneck,aves,psittaciformes,psittacidae,barnardius,zonarius
121
+ sulphur-crested cockatoo,aves,psittaciformes,psittacidae,cacatua,galerita
122
+ little corella,aves,psittaciformes,psittacidae,cacatua,sanguinea
123
+ long-billed corella,aves,psittaciformes,psittacidae,cacatua,tenuirostris
124
+ galah,aves,psittaciformes,psittacidae,eolophus,roseicapilla
125
+ blue-winged parrot,aves,psittaciformes,psittacidae,neophema,chrysostoma
126
+ blue bonnet,aves,psittaciformes,psittacidae,northiella,haematogaster
127
+ crimson rosella,aves,psittaciformes,psittacidae,platycercus,elegans
128
+ eastern rosella,aves,psittaciformes,psittacidae,platycercus,eximius
129
+ regent parrot,aves,psittaciformes,psittacidae,polytelis,anthopeplus
130
+ red-rumped parrot,aves,psittaciformes,psittacidae,psephotus,haematonotus
131
+ mulga parrot,aves,psittaciformes,psittacidae,psephotus,varius
132
+ little penguin,aves,sphenisciformes,spheniscidae,eudyptula,minor
133
+ southern boobook,aves,strigiformes,strigidae,ninox,boobook
134
+ eastern barn owl,aves,strigiformes,tytonidae,tyto,javanica
135
+ owl,aves,strigiformes,,,
136
+ cattle feral,mammalia,artiodactyla,bovidae,bos,taurus
137
+ goat feral,mammalia,artiodactyla,bovidae,capra,hircus
138
+ sheep feral,mammalia,artiodactyla,bovidae,ovis,aries
139
+ hog deer,mammalia,artiodactyla,cervidae,axis,porcinus
140
+ red deer,mammalia,artiodactyla,cervidae,cervus,elaphus
141
+ fallow deer,mammalia,artiodactyla,cervidae,dama,dama
142
+ sambar deer,mammalia,artiodactyla,cervidae,rusa,unicolor
143
+ pig feral,mammalia,artiodactyla,suidae,sus,scrofa
144
+ dingo,mammalia,carnivora,canidae,canis,dingo
145
+ red fox,mammalia,carnivora,canidae,vulpes,vulpes
146
+ domestic cat feral,mammalia,carnivora,felidae,felis,catus
147
+ bat,mammalia,chiroptera,,,
148
+ agile antechinus,mammalia,dasyuromorphia,dasyuridae,antechinus,agilis
149
+ yellow-footed antechinus,mammalia,dasyuromorphia,dasyuridae,antechinus,flavipes
150
+ swamp antechinus,mammalia,dasyuromorphia,dasyuridae,antechinus,minimus
151
+ mainland dusky antechinus,mammalia,dasyuromorphia,dasyuridae,antechinus,swainsonii
152
+ spot-tailed quoll,mammalia,dasyuromorphia,dasyuridae,dasyurus,maculatus
153
+ brush-tailed phascogale,mammalia,dasyuromorphia,dasyuridae,phascogale,tapoatafa
154
+ gile's planigale,mammalia,dasyuromorphia,dasyuridae,planigale,gilesi
155
+ fat-tailed dunnart,mammalia,dasyuromorphia,dasyuridae,sminthopsis,crassicaudata
156
+ white-footed dunnart,mammalia,dasyuromorphia,dasyuridae,sminthopsis,leucopus
157
+ common dunnart,mammalia,dasyuromorphia,dasyuridae,sminthopsis,murina
158
+ feather-tailed glider species,mammalia,diprotodontia,acrobatidae,acrobates,
159
+ narrow-toed feathertail glider,mammalia,diprotodontia,acrobatidae,acrobates,frontalis
160
+ eastern pygmy-possum,mammalia,diprotodontia,burramyidae,cercartetus,nanus
161
+ western grey kangaroo,mammalia,diprotodontia,macropodidae,macropus,fuliginosus
162
+ eastern grey kangaroo,mammalia,diprotodontia,macropodidae,macropus,giganteus
163
+ red kangaroo,mammalia,diprotodontia,macropodidae,macropus,rufus
164
+ black-tailed wallaby,mammalia,diprotodontia,macropodidae,wallabia,bicolor
165
+ red-necked wallaby,mammalia,diprotodontia,macropodidae,notamacropus,rufogriseus
166
+ brush-tailed rock-wallaby,mammalia,diprotodontia,macropodidae,petrogale,penicillata
167
+ leadbeater's possum,mammalia,diprotodontia,petauridae,gymnobelideus,leadbeateri
168
+ yellow-bellied glider,mammalia,diprotodontia,petauridae,petaurus,australis
169
+ sugar glider,mammalia,diprotodontia,petauridae,petaurus,breviceps
170
+ mountain brush-tailed possum,mammalia,diprotodontia,phalangeridae,trichosurus,cunninghami
171
+ common brush-tailed possum,mammalia,diprotodontia,phalangeridae,trichosurus,vulpecula
172
+ koala,mammalia,diprotodontia,phascolarctidae,phascolarctos,cinereus
173
+ long-footed potoroo,mammalia,diprotodontia,potoroidae,potorous,longipes
174
+ long-nosed potoroo,mammalia,diprotodontia,potoroidae,potorous,tridactylus
175
+ southern greater glider,mammalia,diprotodontia,pseudocheiridae,petauroides,volans
176
+ eastern ring-tailed possum,mammalia,diprotodontia,pseudocheiridae,pseudocheirus,peregrinus
177
+ bare-nosed wombat,mammalia,diprotodontia,vombatidae,vombatus,ursinus
178
+ lagomorph spp,mammalia,lagomorpha,leporidae,,
179
+ european brown hare,mammalia,lagomorpha,leporidae,lepus,europaeus
180
+ european rabbit,mammalia,lagomorpha,leporidae,oryctolagus,cuniculus
181
+ platypus,mammalia,monotremata,ornithorhynchidae,ornithorhynchus,anatinus
182
+ short-beaked echidna,mammalia,monotremata,tachyglossidae,tachyglossus,aculeatus
183
+ southern brown bandicoot,mammalia,peramelemorphia,peramelidae,isoodon,obesulus
184
+ eastern barred bandicoot,mammalia,peramelemorphia,peramelidae,perameles,gunnii
185
+ southern long-nosed bandicoot,mammalia,peramelemorphia,peramelidae,perameles,nasuta
186
+ donkey,mammalia,perissodactyla,equidae,equus,asinus
187
+ horse feral,mammalia,perissodactyla,equidae,equus,caballus
188
+ water rat,mammalia,rodentia,muridae,hydromys,chrysogaster
189
+ broad-toothed rat,mammalia,rodentia,muridae,mastacomys,fuscus
190
+ house mouse,mammalia,rodentia,muridae,mus,musculus
191
+ mitchell's hopping-mouse,mammalia,rodentia,muridae,notomys,mitchellii
192
+ silky mouse,mammalia,rodentia,muridae,pseudomys,apodemoides
193
+ smoky mouse,mammalia,rodentia,muridae,pseudomys,fumeus
194
+ heath mouse,mammalia,rodentia,muridae,pseudomys,shortridgei
195
+ bush rat,mammalia,rodentia,muridae,rattus,fuscipes
196
+ swamp rat,mammalia,rodentia,muridae,rattus,lutreolus
197
+ black rat,mammalia,rodentia,muridae,rattus,rattus
198
+ tree dragon,reptilia,squamata,agamidae,amphibolurus,muricatus
199
+ painted dragon,reptilia,squamata,agamidae,ctenophorus,pictus
200
+ nobbi dragon,reptilia,squamata,agamidae,diporiphora,nobbi
201
+ central bearded dragon,reptilia,squamata,agamidae,pogona,vitticeps
202
+ highland copperhead,reptilia,squamata,elapidae,austrelaps,ramsayi
203
+ tiger snake,reptilia,squamata,elapidae,notechis,scutatus
204
+ red-bellied black snake,reptilia,squamata,elapidae,pseudechis,porphyriacus
205
+ eastern brown snake,reptilia,squamata,elapidae,pseudonaja,textilis
206
+ skink spp,reptilia,squamata,scincidae,,
207
+ cunninghams skink,reptilia,squamata,scincidae,egernia,cunninghami
208
+ black rock skink,reptilia,squamata,scincidae,egernia,saxatilis
209
+ yellow-bellied water skink,reptilia,squamata,scincidae,eulamprus,heatwolei
210
+ delicate skink,reptilia,squamata,scincidae,lampropholis,delicata
211
+ garden skink,reptilia,squamata,scincidae,lampropholis,guichenoti
212
+ blotched blue-tongued lizard,reptilia,squamata,scincidae,tiliqua,nigrolutea
213
+ stumpy-tailed lizard,reptilia,squamata,scincidae,tiliqua,rugosa
214
+ common blue-tongued lizard,reptilia,squamata,scincidae,tiliqua,scincoides
215
+ snake spp,reptilia,squamata,serpentes,,
216
+ sand goanna,reptilia,squamata,varanidae,varanus,gouldii
217
+ lace monitor,reptilia,squamata,varanidae,varanus,varius
218
+ lizard spp,reptilia,squamata,,,