2017-09-25 7 views
0

PythonでイメージのSIFT機能を検出するプログラムを実行しようとしましたが、 "セグメンテーションフォルト(コアダンプ)"というエラーメッセージが表示されました。コードの私の作品:Python - OpenCvを使用したSIFTの脆弱性の計算:カーネルが枯渇しました:セグメンテーションフォールト(コアダンプ)どうすればその問題を防ぐことができますか?

# -*- coding: utf-8 -*- 
import numpy as np 
import matplotlib.pyplot as plt 
import cv2 

img1 = plt.imread("test1.png").astype('uint8') 
img2 = plt.imread("test2.png").astype('uint8') 
sift = cv2.SIFT() 

###find the keypoints and descriptors with SIFT 
kp1, des1 = sift.detectAndCompute(img1,None) 
kp2, des2 = sift.detectAndCompute(img2,None) 

###FLANN parameters 
FLANN_INDEX_KDTREE = 0 
index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5) 
search_params = dict(checks=50) 

###match of the points 
flann = cv2.FlannBasedMatcher(index_params,search_params) 
matches = flann.knnMatch(des1,des2,k=2) 

は、私はPythonでそれを試してみましたが、時々私は、このエラーメッセージが表示されました:セグメンテーションフォールトが(コアダンプ)。したがって、私はそれを防ぐか、より安定したアプローチを使用したいと思います。私はSkimageを見て同等物を探します

答えて

1

このエラーは、あなたのデバイスのメモリ(RAM)を多すぎるために発生します。今、そこそこの解決策はありません。

  • デバイスをアップグレードしてください。デバイスをアップグレードするかAWSを使用する(無料のティアもあります)
  • コードを改善しました。

注 - SIFTは計算上高価であり、あなたがより良い画像を1つずつ試すか、あるいは画像を縮小し、その後

+0

[OK]を感謝を試して見つけるの関心点は、大量のメモリを取ります。 )私は写真を縮小しようとします!私は今日それを行い、私はあなたに知らせています – user3601754

+0

問題はそれほど頻繁には発生しません;)しかし消えません – user3601754

+0

あなたのラップトップはいくつのコアを持っていますか? RAMは何ですか? GPUで実行していますか? –

関連する問題