Skip to content

Commit 38f1265

Browse files
committed
new ipfs data drop
1 parent 5ab1588 commit 38f1265

File tree

9 files changed

+729
-426
lines changed

9 files changed

+729
-426
lines changed

README.rst

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ illustrates an example of one of these "triples".
8686
.. image:: https://i.imgur.com/NnEC8XZ.jpg
8787

8888

89-
The name "ShitSpotter" is an homage to my earlier work: `HotSpotter <https://github.com/Erotemic/hotspotter>`_, which later became `IBEIS <https://github.com/Erotemic/ibeis>`_ This is work on individual animal identification, particularly Zebras. This work is continued by `WildMe <https://www.wildme.org/>`_.
89+
The name "ShitSpotter" is an homage to my earlier work: `HotSpotter <https://github.com/Erotemic/hotspotter>`_, which later became `IBEIS <https://github.com/Erotemic/ibeis>`_ This is work on individual animal identification, particularly Zebras. After 2017, this work was continued in Wildbook by `WildMe <https://www.wildme.org/>`_, which merged with `Conservation X Labs <https://www.conservationxlabs.com/>`_ in 2024.
9090

9191

9292
Downloading the Data
@@ -108,7 +108,7 @@ The following `IPNS <https://docs.ipfs.tech/concepts/ipns/>`_ address should alw
108108
`/ipns/k51qzi5uqu5dje1ees96dtsoslauh124drt5ajrtr85j12ae7fwsfhxb07shit <https://ipfs.io/ipns/k51qzi5uqu5dje1ees96dtsoslauh124drt5ajrtr85j12ae7fwsfhxb07shit>`_.
109109

110110
This should resolve to the most recent `IPFS CID <https://docs.ipfs.tech/concepts/content-addressing/>`_ (Content Identifier) of:
111-
`/ipfs/bafybeihsd6rwjha4kbeluwdjzizxshrkcsynkwgjx7fipm5pual6eexax4 <https://ipfs.io/ipfs/QmQonrckXZq37ZHDoRGN4xVBkqedvJRgYyzp2aBC5Ujpyp?redirectURL=bafybeihsd6rwjha4kbeluwdjzizxshrkcsynkwgjx7fipm5pual6eexax4&autoadapt=0&requiresorigin=0&web3domain=0&immediatecontinue=1&magiclibraryconfirmation=0>`_.
111+
`/ipfs/bafybeidfxayyacq4jbbhjcxbxumqlspmsmkj52nq2ns4vfew5udgysocoy <https://ipfs.io/ipfs/QmQonrckXZq37ZHDoRGN4xVBkqedvJRgYyzp2aBC5Ujpyp?redirectURL=bafybeidfxayyacq4jbbhjcxbxumqlspmsmkj52nq2ns4vfew5udgysocoy&autoadapt=0&requiresorigin=0&web3domain=0&immediatecontinue=1&magiclibraryconfirmation=0>`_.
112112

113113
This can be viewed in a webbrowser through an IPFS gateway:
114114

@@ -150,6 +150,7 @@ Recent Updates
150150
Check back for updates, but because this is a personal project, it might take
151151
some time for it to fully drop.
152152

153+
* 2025-07-04 - Releasing new data on IPFS. The growth seems to be increasing. Will take 7-9 more years to get 30k images.
153154
* 2025-04-20 - The number of images is now over 9000! The dataset is now `mirrored on hugging face <https://huggingface.co/datasets/erotemic/shitspotter>`__.
154155
* 2025-03-09 - Bunch of new images, with somewhat of a domain shift. The detectron model is good at annotating new images, but still not good enough. More work to be done.
155156
* 2024-12-31 - It is the end of 2024, lots has changed: new varied images, new privacy policy, and new contributions. Happy new year 🎊, all new 2025 images will go into the train set.
@@ -376,7 +377,8 @@ registration via the SIFT+RANSAC algorithm.
376377
+-------------+----------+---------------------+-----------------------+-----------------------+--------------------------------------------------------------+
377378
| 2025-04-20 | 9175 | ~3189 | 2316 | 3198 | bafybeia2uv3ea3aoz27ytiwbyudrjzblfuen47hm6tyfrjt6dgf6iadta4 |
378379
+-------------+----------+---------------------+-----------------------+-----------------------+--------------------------------------------------------------+
379-
380+
| 2025-07-04 | 9790 | ~3394 | 2444 | 3406 | bafybeidfxayyacq4jbbhjcxbxumqlspmsmkj52nq2ns4vfew5udgysocoy |
381+
+-------------+----------+---------------------+-----------------------+-----------------------+--------------------------------------------------------------+
380382

381383

382384

@@ -567,6 +569,7 @@ Current IPFS addresses for each top-level asset group are:
567569
bafybeihgnfs6hku3xlqa7fnoqujkmq2ezk7lvidw32dvgjhsmk7wpk72cy - shitspotter_dvc/assets/poop-2024-12-30-T212347
568570
bafybeidvaphwcib2qezdcey4cj3a2r7r7oxskl56yaccgdi75pdou4ggmm - shitspotter_dvc/assets/poop-2025-03-08-T224918
569571
bafybeieyl6yzi6cyz3minjyvmz53ydbpxmljxs5gytv6cwu6ci7tmwyvjq - shitspotter_dvc/assets/poop-2025-04-20-T172113
572+
bafybeicz7kxvmxojmu33pskfrkglosz3tndgsmpzz6cmmcxynaau5xzfeu - shitspotter_dvc/assets/poop-2025-07-03-T230656
570573
571574
572575

dev/journal.txt

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,3 +278,129 @@ be starting now.
278278

279279
Also going to try forwarding 58334 to my box running deluge, and that seemed to
280280
work.
281+
282+
283+
# 2025-07-02
284+
285+
Annotating a bunch of images taken since the 2024-04-20 release, have ~600
286+
images, so ~200 with poop. Its interesting to see the MaskRCNN failure cases.
287+
It certainly gets it right a lot of the time, but there are still some (what
288+
seem to be easy) misses. There is definately an issue with leafs, helicopter
289+
seeds, and sticks. But now those will be false positive annotations.
290+
291+
Missing cases where the poop is in a strong light gradient. Occluded cases.
292+
Generally noisy images cases. Some cases, which are probably due to NMS issues,
293+
but not 100% sure.
294+
295+
Pretty good at cases in beds of clover or in short grass.
296+
Rocks with strong shadows are causing false positives.
297+
298+
I should probably retrain the model its at least 6 months out of date.
299+
300+
What is my image capture rate? / Dataset growth rate? A: 170-215 images /
301+
month.
302+
303+
Should make a wordcloud of negative annotations.
304+
305+
Current tag / cat histograms are:
306+
307+
cat_hist = {
308+
'mulch': 1,
309+
'yellowsnow': 1,
310+
'acorn-cap': 1,
311+
'cigarette': 1,
312+
'wood': 1,
313+
'tree-trunk': 1,
314+
'plant-matter': 1,
315+
'root': 1,
316+
'acorn': 1,
317+
'dogtoy': 1,
318+
'nut': 2,
319+
'treebark': 2,
320+
'treeroot': 2,
321+
'background': 2,
322+
'residue': 2,
323+
'pine-leafs': 2,
324+
'pipe': 2,
325+
'bottle-cap': 2,
326+
'shadow': 2,
327+
'woodpost': 2,
328+
'wood-chip': 3,
329+
'leafs': 4,
330+
'dirt': 4,
331+
'crushed-nut': 4,
332+
'bark': 5,
333+
'helicopter-seed': 5,
334+
'grass-patch': 6,
335+
'rock': 10,
336+
'ignore': 11,
337+
'stick': 13,
338+
'helicopterseed': 13,
339+
'unknown': 14,
340+
'pine-cone': 16,
341+
'leaf': 134,
342+
'poop': 6817,
343+
}
344+
tag_hist = {
345+
'from-roadie': 1,
346+
'sqashed': 1,
347+
'blury': 1,
348+
'dark': 1,
349+
'blurry': 1,
350+
'big-pile': 1,
351+
'stringy': 1,
352+
'polygon-hole': 1,
353+
'hard': 1,
354+
'partial-occlusion': 1,
355+
'wet': 1,
356+
'digestedtoy': 1,
357+
'frozen': 1,
358+
'shiney': 1,
359+
'maybe-sick': 1,
360+
'confusor': 1,
361+
'crumbling': 1,
362+
'residue': 1,
363+
'liquidy': 1,
364+
'some crud in it, maybe a toy': 1,
365+
'liquid': 1,
366+
'unsure': 1,
367+
'soft': 1,
368+
'inside': 1,
369+
'ambiguous': 1,
370+
'hardcase': 1,
371+
'hairy': 1,
372+
'difficult': 2,
373+
'smeared': 2,
374+
'splatter': 2,
375+
'occlusion': 2,
376+
'gross': 3,
377+
'decomposing': 3,
378+
'residual': 3,
379+
'minor-occlusion': 3,
380+
'splat': 3,
381+
'camo': 4,
382+
'hidden': 5,
383+
'camoflauged': 5,
384+
'squashed': 6,
385+
'messy': 7,
386+
'sick': 9,
387+
'diarrhea': 13,
388+
'snowcovered': 13,
389+
'occluded': 17,
390+
'crumbly': 19,
391+
'smashed': 19,
392+
'fresh': 25,
393+
'old': 105,
394+
}
395+
396+
397+
I need to think about this project's end state.
398+
399+
When is the dataset big enought? I'm thinking I want about 10,000 images with
400+
good poop annotations as an arbitrary number. That will take about 7-10 more
401+
years at current growth rates.
402+
403+
But maybe the end state is really:
404+
405+
* There exists a good phone app that has a very high detection F1 to the point
406+
of being useful.

experiments/geowatch-experiments/run_pixel_eval_on_test_pipeline.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ python -m geowatch.mlops.schedule_evaluation \
177177
--root_dpath="$EVAL_PATH" \
178178
--devices="0,1," --tmux_workers=2 \
179179
--backend=tmux --skip_existing=1 \
180-
--run=1
180+
--run=0
181181

182182

183183
# Simple no-dependency result readout

secrets/privacy.1.data

Lines changed: 70 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,70 @@
1-
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
70+
LdrTJH7Tnq5/YGYNj9pLog==

0 commit comments

Comments
 (0)