autodistill / autodistill-grounded-edgesam

EdgeSAM model for use with Autodistill.
https://docs.autodistill.com
Other
25 stars 2 forks source link

Key error initializing GroundedEdgeSAM #1

Open MichaelHoltonPrice opened 9 months ago

MichaelHoltonPrice commented 9 months ago

I receive the following error.

base_model = GroundedEdgeSAM( ... ontology=CaptionOntology( ... { ... "person": "person", ... "forklift": "forklift", ... } ... ) ... ) Loading EdgeSAM... Traceback (most recent call last): File "", line 1, in File "C:\Users\mpatm\AppData\Local\Programs\Python\Python310\lib\site-packages\autodistill_grounded_edgesam\grounded_edgesam_model.py", line 77, in init self.predictor = check_dependencies() File "C:\Users\mpatm\AppData\Local\Programs\Python\Python310\lib\site-packages\autodistill_grounded_edgesam\grounded_edgesam_model.py", line 59, in check_dependencies sam = sam_model_registrySAM_ENCODER_VERSION.to( KeyError: 'edge_sam'

I've confirmed that, indeed, the sam_model_registry dictionary does not contain a key named edge_sam. This code ran without error the first time I ran it, but not the second:

https://github.com/autodistill/autodistill-grounded-edgesam?ref=blog.roboflow.com

I worry that the automatic installs in grounded_edgesam_model.py messed up my configuration. It seems like a bad idea to embed clones and installs in that script. It would be better to trust your users to do the appropriate installs, at most raising an error if there is an issue; this is in line with pythonic principles.

nihirv commented 5 months ago

yeah also getting this same issue. If I change the key to "default", I'm getting shape error mismatches between the expected model config and the checkpoint.

EDIT: Ok, seems that the EdgeSAM repo contains the files needed to get this running: https://github.com/chongzhou96/EdgeSAM/tree/master

Namely, build_sam.py, common.py and rep_vit.py

I copied these over to the relevant locations in my autodistill lib (highly unrecommended) and the runs fine with "edge_sam" as the key.

Odd that the dependencies for this EdgeSAM weren't updated/modified with this repo

pascal-maker commented 2 months ago

hello ran into the same error while running : when running import sys sys.path.append("..") from segment_anything import sam_model_registry, SamPredictor

sam_checkpoint = "/content/EfficientSAM/edge_sam.pth" model_type = "edge_sam"

device = "cuda"

sam = sam_model_registrymodel_type sam.to(device=device)

predictor = SamPredictor(sam) --------------------------------------------------------------------------- KeyError Traceback (most recent call last) /tmp/ipykernel_11959/398106226.py in <cell line: 10>() 8 device = "cuda" 9 ---> 10 sam = sam_model_registrymodel_type 11 sam.to(device=device) 12

KeyError: 'edge_sam is the solution already found ?