Giter VIP home page Giter VIP logo

Comments (3)

vidlb avatar vidlb commented on May 16, 2024 1

Hi @lymperis-e , I think your problem is relative to QGIS and how you call pytorch in the background, not segment-geospatial.

To avoid freeze and errors in one of my script, I had to add this code to the class definition :

class Process(QgsProcessingAlgorithm):
    ...
    def flags(self):
        return super().flags() | QgsProcessingAlgorithm.FlagNoThreading

Not sure if it's the same logic in plugins...
But I'm pretty sure this is a threading problem, which is common when coding PyQt (except if it is indeed just a slow CPU).

Hope this will help.

(Edit : it does not look like there are similar flags for plugins, but may be wrapping your process in a QgsProcessingAlgorithm will allow you to better control its execution).

from segment-geospatial.

giswqs avatar giswqs commented on May 16, 2024

It works fine on my end. Do you have a GPU? Running on CPU can be pretty slow and might look like frozen.

import os
import torch
from samgeo import SamGeo, tms_to_geotiff

bbox = [-95.3704, 29.6762, -95.368, 29.6775]
image = 'satellite.tif'
tms_to_geotiff(output=image, bbox=bbox, zoom=20, source='Satellite')

out_dir = os.path.join(os.path.expanduser('~'), 'Downloads')
checkpoint = os.path.join(out_dir, 'sam_vit_h_4b8939.pth')

device = 'cuda' if torch.cuda.is_available() else 'cpu'
sam = SamGeo(
    checkpoint=checkpoint,
    model_type='vit_h',
    device=device,
    erosion_kernel=(3, 3),
    mask_multiplier=255,
    sam_kwargs=None,
)

mask = 'segment.tiff'
sam.generate(image, mask)

vector = 'segment.gpkg'
sam.tiff_to_gpkg(mask, vector, simplify_tolerance=None)

image

from segment-geospatial.

giswqs avatar giswqs commented on May 16, 2024

@vidlb Thank you for helping out. Closing this issue for now. Feel free to reopen it if you are still experiencing issues @lymperis-e

from segment-geospatial.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.