質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.83%

  • C

    3351questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Ubuntu

    1201questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • bash

    578questions

    bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

  • GDB

    18questions

    GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

  • Darknet

    2questions

darknet yoloで最後のprediction.pngが作成されずsigsegvエラーが起こる

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 123

Spacekoki

score 3

lubuntu 16.04 LTSを使っています。
darknetのyoloについての質問です。画像を認識させると下記のbashのように最後にsigsegvエラーを吐きます。下記のはtinydarknetを用いたときのログですが普通のdarknetを用いてdetectした場合も全く同じ現象が起こります。どうすればよいでしょうか?

./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg
layer     filters    size              input                output
    0 conv     16  3 x 3 / 1   224 x 224 x   3   ->   224 x 224 x  16  0.043 BFLOPs
    1 max          2 x 2 / 2   224 x 224 x  16   ->   112 x 112 x  16
    2 conv     32  3 x 3 / 1   112 x 112 x  16   ->   112 x 112 x  32  0.116 BFLOPs
    3 max          2 x 2 / 2   112 x 112 x  32   ->    56 x  56 x  32
    4 conv     16  1 x 1 / 1    56 x  56 x  32   ->    56 x  56 x  16  0.003 BFLOPs
    5 conv    128  3 x 3 / 1    56 x  56 x  16   ->    56 x  56 x 128  0.116 BFLOPs
    6 conv     16  1 x 1 / 1    56 x  56 x 128   ->    56 x  56 x  16  0.013 BFLOPs
    7 conv    128  3 x 3 / 1    56 x  56 x  16   ->    56 x  56 x 128  0.116 BFLOPs
    8 max          2 x 2 / 2    56 x  56 x 128   ->    28 x  28 x 128
    9 conv     32  1 x 1 / 1    28 x  28 x 128   ->    28 x  28 x  32  0.006 BFLOPs
   10 conv    256  3 x 3 / 1    28 x  28 x  32   ->    28 x  28 x 256  0.116 BFLOPs
   11 conv     32  1 x 1 / 1    28 x  28 x 256   ->    28 x  28 x  32  0.013 BFLOPs
   12 conv    256  3 x 3 / 1    28 x  28 x  32   ->    28 x  28 x 256  0.116 BFLOPs
   13 max          2 x 2 / 2    28 x  28 x 256   ->    14 x  14 x 256
   14 conv     64  1 x 1 / 1    14 x  14 x 256   ->    14 x  14 x  64  0.006 BFLOPs
   15 conv    512  3 x 3 / 1    14 x  14 x  64   ->    14 x  14 x 512  0.116 BFLOPs
   16 conv     64  1 x 1 / 1    14 x  14 x 512   ->    14 x  14 x  64  0.013 BFLOPs
   17 conv    512  3 x 3 / 1    14 x  14 x  64   ->    14 x  14 x 512  0.116 BFLOPs
   18 conv    128  1 x 1 / 1    14 x  14 x 512   ->    14 x  14 x 128  0.026 BFLOPs
   19 conv   1000  1 x 1 / 1    14 x  14 x 128   ->    14 x  14 x1000  0.050 BFLOPs
   20 avg                       14 x  14 x1000   ->  1000
   21 softmax                                        1000
Loading weights from tiny.weights...Done!
fish: “./darknet classify cfg/tiny.cfg…” terminated by signal SIGSEGV (Address boundary error)
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

デバッグビルドを行い、gdb経由で実行して、SEGVが起きている箇所を特定しましょう。
darknetはエラーケースがあまり考慮されておらず、少し入力パラメータが違うだけでもSEGVが起きます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/28 15:27 編集

    gdb --args ./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg
    GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
    Copyright (C) 2016 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "i686-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    ./darknet: 成功です.
    (gdb)

    ここまでできるのですが、ここからどうすればよいでしょうか?
    gdbは初めてでよくわかりません。

    キャンセル

  • 2018/05/28 15:37

    そこでrunすればひとまず実行はできます。
    が、gdbを用いたデバッグに慣れていないと、ちょっとこの先は大変そうです。
    基本的にdarknetは、ソースコードを読んで解析できる方向けのものだと認識しています。

    キャンセル

  • 2018/05/28 15:53 編集

    ありがとうございます。
    ここまでできました。memcpy.sを作成すれば直るのではないかと思っています。
    #0のディレクトリが省略されているのですがどうすればわかるのでしょうか?

    gdb --args ./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg
    GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
    Copyright (C) 2016 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "i686-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from ./darknet...done.
    (gdb) run
    Starting program: /home/spacekoki/darknet/darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
    layer filters size input output
    0 conv 16 3 x 3 / 1 224 x 224 x 3 -> 224 x 224 x 16 0.043 BFLOPs
    1 max 2 x 2 / 2 224 x 224 x 16 -> 112 x 112 x 16
    2 conv 32 3 x 3 / 1 112 x 112 x 16 -> 112 x 112 x 32 0.116 BFLOPs
    3 max 2 x 2 / 2 112 x 112 x 32 -> 56 x 56 x 32
    4 conv 16 1 x 1 / 1 56 x 56 x 32 -> 56 x 56 x 16 0.003 BFLOPs
    5 conv 128 3 x 3 / 1 56 x 56 x 16 -> 56 x 56 x 128 0.116 BFLOPs
    6 conv 16 1 x 1 / 1 56 x 56 x 128 -> 56 x 56 x 16 0.013 BFLOPs
    7 conv 128 3 x 3 / 1 56 x 56 x 16 -> 56 x 56 x 128 0.116 BFLOPs
    8 max 2 x 2 / 2 56 x 56 x 128 -> 28 x 28 x 128
    9 conv 32 1 x 1 / 1 28 x 28 x 128 -> 28 x 28 x 32 0.006 BFLOPs
    10 conv 256 3 x 3 / 1 28 x 28 x 32 -> 28 x 28 x 256 0.116 BFLOPs
    11 conv 32 1 x 1 / 1 28 x 28 x 256 -> 28 x 28 x 32 0.013 BFLOPs
    12 conv 256 3 x 3 / 1 28 x 28 x 32 -> 28 x 28 x 256 0.116 BFLOPs
    13 max 2 x 2 / 2 28 x 28 x 256 -> 14 x 14 x 256
    14 conv 64 1 x 1 / 1 14 x 14 x 256 -> 14 x 14 x 64 0.006 BFLOPs
    15 conv 512 3 x 3 / 1 14 x 14 x 64 -> 14 x 14 x 512 0.116 BFLOPs
    16 conv 64 1 x 1 / 1 14 x 14 x 512 -> 14 x 14 x 64 0.013 BFLOPs
    17 conv 512 3 x 3 / 1 14 x 14 x 64 -> 14 x 14 x 512 0.116 BFLOPs
    18 conv 128 1 x 1 / 1 14 x 14 x 512 -> 14 x 14 x 128 0.026 BFLOPs
    19 conv 1000 1 x 1 / 1 14 x 14 x 128 -> 14 x 14 x1000 0.050 BFLOPs
    20 avg 14 x 14 x1000 -> 1000
    21 softmax 1000
    Loading weights from tiny.weights...Done!

    Program received signal SIGSEGV, Segmentation fault.
    __memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:90
    90 ../sysdeps/i386/i686/multiarch/../memcpy.S: そのようなファイルやディレクトリはありません.
    (gdb) where
    #0 __memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:90
    #1 0xb7df6307 in __GI__IO_getline_info (fp=0x9377050, buf=0x0, n=<optimized out>, delim=10, extract_delim=1, eof=0x0)
    at iogetline.c:96
    #2 0xb7df63ce in __GI__IO_getline (fp=0x9377050, buf=0x0, n=511, delim=10, extract_delim=1) at iogetline.c:34
    #3 0xb7df51ed in _IO_fgets (buf=0x0, n=512, fp=0x9377050) at iofgets.c:53
    #4 0x0806296b in fgetl ()
    #5 0x0808871e in get_paths ()
    #6 0x0808a9ba in get_labels ()
    #7 0x08058466 in predict_classifier ()
    #8 0x080497ba in main ()
    (gdb)down
    #0 __memcpy_ia32 () at ../sysdeps/i386/i686/multiarch/../memcpy.S:90
    90 ../sysdeps/i386/i686/multiarch/../memcpy.S: そのようなファイルやディレクトリはありません.

    キャンセル

  • 2018/05/28 16:00

    見方としては、
    #5 0x0808871e in get_paths ()
    #6 0x0808a9ba in get_labels ()
    あたりの引数に与えているパラメータから原因を類推する感じになります。
    今回の場合はおそらくラベル取得関数に失敗しているので、ラベルファイルが適切なパスに置いてあるかどうか、などが考えられます。

    キャンセル

  • 2018/06/06 13:30

    ありがとうございます。
    darknetも入れなおしてみたのですが、どうもうまく行きません。
    他にもコンパイラをアップデートしてみたりした。
    どうすればよいでしょうか?
    ちなみにdarknet/は/home/usernameにあります。

    キャンセル

  • 2018/06/06 13:45

    状況は、変わらずSEGVですか?落ちる場所は変わりありませんか?
    ラベルファイルについて何か試したことはありますか?

    キャンセル

  • 2018/06/06 14:20

    darknet/data/labels/の中にラベルファイルがったのでインストールし直しました。
    エラーも変わりません。

    キャンセル

  • 2018/06/06 14:20

    ちなみに2点伺いたいのですが、
    detectコマンドではなくclassifyコマンドを使っていることに意図はありますか?
    yolov3.cfg/yolov3.weights ではなくtiny.cfg/tiny.weights を使っていることに意図はありますか?

    キャンセル

  • 2018/06/06 14:25

    今使用しているPCが低スペックなのでtinydarknetを使っています。公式ホームページのtinydarknetの使い方ではdetectではなくclassifyを使うようにと書いてあったのでそうしています。
    https://pjreddie.com/darknet/tiny-darknet/

    キャンセル

  • 2018/06/06 14:30

    https://pjreddie.com/darknet/yolo/
    おそらくこのページの方が新しく、こちらでは例として
    ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
    と例が挙げられています。速度もさほど気にならない程度(GPUなしで十数秒)ですので、ひとまず結果を出したい、というだけであれば、こちらを試してみてはいかがでしょう。

    キャンセル

  • 2018/06/06 14:32

    ・・・おや?
    手元で「./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg」実行したら成功しちゃったぞ・・・?

    キャンセル

  • 2018/06/06 14:37

    今使用しているPCがPentium 1.2GHzでRAMが725MBのを使っているのでノーマルでは2時間以上経っても解析が終わりませんでした。Tiny-yolov3も使ってみましたが、それだと10分くらいでかいせきしおわりましたが、SEGVエラーが起きました。

    キャンセル

  • 2018/06/06 14:44

    そうですか!だいぶスペック限定されていますね。そこまでだとメモリ確保に失敗している可能性も出てきますね。
    実行中マウスの動きがカクカクしたりしますでしょうか。
    別ターミナルでtopコマンドでメモリの状況見ながらtinyで実行した場合、メモリ状況がどうなるか、も確認をお願いします。

    キャンセル

  • 2018/06/06 14:44

    ひょっとしてXも入れてないですかね?

    キャンセル

  • 2018/06/06 15:04

    解析中にカクつくことはないですね。
    Xは入っています。LXDEを使っています。
    メモリ・CPU共に実行時は100%になることはないですね。
    せいぜいCPUが80%近くになるくらいです。

    キャンセル

  • 2018/06/06 15:26

    CPUは落ちることに対して影響は考えられません。メモリが重要です。
    当方の手元で最後まで動き、Spacekokiさんの環境で落ちた最大の違いはやはり使えるメモリの量ではないかと推測しています。

    とは言え、メモリ原因で落ちると分かったところで、YOLOを動かすという目的は達せられないわけで、悩ましいところですね。。。
    Spacekokiさんの上長さんにもうちょっとマシなスペックのマシンよこせ、と交渉する余地は無いでしょうか。

    キャンセル

  • 2018/06/07 10:48 編集

    メモリには全然負担がかかってないのですがスペックが原因の可能性が高そうですね。kaztoさんありがとうございました。

    キャンセル

check解決した方法

0

PCの単純なRAM不足が原因の可能性が高そうです。ちなみに自分の使ったPCのRAMは725MBでした。Darknet yoloを使うにはある程度のスペックが無いと使えないようです。残念(T_T)
*後日Raspberry Pi 3 Model B+でやってもダメでした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.83%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    phpmyadminで文字化け

    phpmyadminへphpコードから値を入れて、その値が正しく表示されているか確認したら日本語の値のみ文字化けしてよめませんでした 改善方法を調べてみて、「mysql」フォルダ

  • 解決済

    openCVでimreadして得た配列の構成を変えたい

    import cv2 img = cv2.imread('hoge.jpg') print(img.shape) 以上のように128*128のカラー画像を読み込んだ際、 (1

  • 解決済

    grepの正規表現について

    grepにおける正規表現について教えてください。 以下にあるようなファイルのコメント部分(#の部分)のみ抽出したいと考えています。 ・対象ファイル $ cat ./t

  • 受付中

    Kerasを用いたCNN3によるcifar10の画像認識

    Keras初心者です。 CNNを理解するためにKerasでモデルを作り、cifar10のデータを元にモデルの認識精度を出力しようとしています。 以下のプログラムに対するエラーの

  • 受付中

    pygameの導入について

    Anaconda3 4.3.1(64bit)にpygameを導入する具体的な手順を教えてください

  • 解決済

    再帰関数のリスト内表記について

    以下のような再帰関数のリスト内表記に関する簡単なプログラムの実行時間を削減したいと考えています。 def double(x): y = 2*x return y

  • 解決済

    byte[] intの変換で、いろいろ疑問

    前提・実現したいこと こんにちは。いつもたいへんお世話になります。 byte[] intの変換で、コンソールアプリケーションを作っていろいろ試しています。 そこでいろいろ疑問が出て

  • 解決済

    デーモンで起動したRails serverを停止できない

    MacでRailsの勉強中なのですが、誤って「rails s -d」を実行後、停止することができなくなりました。 「ps ax | grep rails」でpid(例えば900)を

同じタグがついた質問を見る

  • C

    3351questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Ubuntu

    1201questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • bash

    578questions

    bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

  • GDB

    18questions

    GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

  • Darknet

    2questions