bencevans / camtrapml Goto Github PK
View Code? Open in Web Editor NEW๐ท๐ฆ CamTrapML Python Library for Detecting, Classifying, and Analysing Camera Trap Imagery.
License: MIT License
๐ท๐ฆ CamTrapML Python Library for Detecting, Classifying, and Analysing Camera Trap Imagery.
License: MIT License
Hi! I tried to take this package for a spin and got stuck at the step
from camtrapml.detection.models.megadetector import MegaDetectorV4_1
I get the following message
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
3. More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
</details>
The core functionality should be available with pip install camtrapml
, e.g. image processing and filtering.
Features that require a more heavy set of dependencies, such as Exif extraction, detection and classification tooling, should require installation as options e.g.
pip install camtrapml[md4]
pip install camtrapml[md5]
pip install camtrapml[exif]
Everything with something along the lines of
pip install camtrapml[md4,md5,exif]
Support alternative bounding box formats in camtrapml.detection.utils.extract_detections_from_image()
.
Ability to run tasks quickly from Terminal.
Update to any v3 so that more likely compatible with a pre-installed version.
def parseKeywords(keywords):
if type(keywords) == str:
keywords = [keywords]
def parse(keyword):
split = keyword.split(':')
if len(split) == 1:
return split[0], True
else:
key = split[0].strip()
val = split[1].strip()
return key, val
return [parse(keyword) for keyword in keywords]
parseKeywords(['contact1', 'placeID: 01', 'species1: Squirrel'])
parseKeywords('placeID: 01')
Fairly often tests are failing due to connection issues when downloading models. Proposal to add retry logic to the download function so that if there's a socket hang up etc. it retries up to three times.
camtrapml/camtrapml/download.py
Lines 13 to 38 in db91e9e
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.