Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

SIFT memory leak

Offen
#169 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
backend, performance

Rechercherichtung

Beginne damit, die bereitgestellte Schleife mit af.load_image, af.vision.sift, af.device.device_gc und af.print_mem_info zu reproduzieren, und vergleiche dann ihr Verhalten mit der im Issue beschriebenen C-Implementierung und dem ORB-Ergebnis. Verfolge die Bereinigung der Features rund um af_release_features und die SIFT/GLOH-Bindings; fertig bedeutet, dass wiederholte Erkennung keinen weiteren Speicherzuwachs zeigt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

It seems that the SIFT detection leaks memory. Here is the example script I am running.

import arrayfire as af
import time

while True:
    im = af.load_image('image.jpg')
    feats, desc = af.vision.sift(im)

    af.device.device_gc()
    af.print_mem_info()
    time.sleep(1)

I solved part of the leaks in #168. Apparently the features destructor wasn't called, and af_release_features needed to be called explicitly from python.

With this fix the ORB feature detection works without leaks, but SIFT and GLOH still do.

Running pretty much the same methods in C works without a memory leak. So I think there might be another destructor that ought to be called explicitly, just like af_release_features, but I could not figure out where the leak was originated from.

Vorherrschende Sprache
Python
Sterne
422
Forks
63
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus arrayfire/arrayfire-python

Alle Issues in arrayfire/arrayfire-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.