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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

1回答

3433閲覧

OpencvをGoで動かし、人体検出をしたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2016/07/28 10:34

opencvで人検出をしたいのですが、検出することができていません。

顔検出はできたのですが、人ができていません。

エラーメッセージは

error

1OpenCV Error: Unspecified error (The node does not represent a user object (unknown type?)) in cvRead, file /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/persistence.cpp, line 5008 2libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/persistence.cpp:5008: error: (-2) The node does not represent a user object (unknown type?) in function cvRead 3 4SIGABRT: abort 5PC=0x7fff96306f06 m=0 6signal arrived during cgo execution 7 8goroutine 1 [syscall, locked to thread]: 9runtime.cgocall(0x40c7e60, 0xc820053d38, 0x0) 10 /usr/local/Cellar/go/1.6.2/libexec/src/runtime/cgocall.go:123 +0x11b fp=0xc820053ce8 sp=0xc820053cb8 11github.com/lazywei/go-opencv/opencv._Cfunc_cvLoadHaarClassifierCascade(0x6918520, 0x100000001, 0x0) 12 ??:0 +0x42 fp=0xc820053d38 sp=0xc820053ce8 13github.com/lazywei/go-opencv/opencv.LoadHaarClassifierCascade(0xc820012380, 0x36, 0x2) 14 /Users/hazuuuun/go/src/github.com/lazywei/go-opencv/opencv/cvaux.go:61 +0x8d fp=0xc820053d70 sp=0xc820053d38 15main.main() 16 /Users/hazuuuun/go/src/cvtest/body.go:25 +0x24b fp=0xc820053f50 sp=0xc820053d70 17runtime.main() 18 /usr/local/Cellar/go/1.6.2/libexec/src/runtime/proc.go:188 +0x2b0 fp=0xc820053fa0 sp=0xc820053f50 19runtime.goexit() 20 /usr/local/Cellar/go/1.6.2/libexec/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc820053fa8 sp=0xc820053fa0 21 22goroutine 17 [syscall, locked to thread]: 23runtime.goexit() 24 /usr/local/Cellar/go/1.6.2/libexec/src/runtime/asm_amd64.s:1998 +0x1 25 26rax 0x0 27rbx 0x6 28rcx 0x7fff5fbee218 29rdx 0x0 30rdi 0x307 31rsi 0x6 32rbp 0x7fff5fbee240 33rsp 0x7fff5fbee218 34r8 0x4 35r9 0x7fff93bbca53 36r10 0x8000000 37r11 0x206 38r12 0x7fff5fbee3a0 39r13 0x554c118 40r14 0x7fff7eaf5000 41r15 0x7fff5fbee280 42rip 0x7fff96306f06 43rflags 0x206 44cs 0x7 45fs 0x0 46gs 0x0 47exit status 2

ソースコードがこちらです。
カスケードのロードするファイルだけ変えましたが、落ちてしまいました。

package main import ( "fmt" "os" "path" "github.com/lazywei/go-opencv/opencv" ) func main() { win := opencv.NewWindow("Go-OpenCV Webcam Face Detection") defer win.Destroy() cap := opencv.NewCameraCapture(0) if cap == nil { panic("cannot open camera") } defer cap.Release() cwd, err := os.Getwd() if err != nil { panic(err) } cascade := opencv.LoadHaarClassifierCascade(path.Join(cwd, "haarcascade_fullbody.xml")) fmt.Println("Press ESC to quit") for { if cap.GrabFrame() { img := cap.RetrieveFrame(1) if img != nil { faces := cascade.DetectObjects(img) for _, value := range faces { opencv.Circle(img, opencv.Point{ value.X() + (value.Width() / 2), value.Y() + (value.Height() / 2), }, value.Width()/2, opencv.ScalarAll(255.0), 1, 1, 0) } win.ShowImage(img) } else { fmt.Println("nil image") } } key := opencv.WaitKey(1) if key == 27 { os.Exit(0) } } }

わかる方いましたらよろしくお願いいたします。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /tmp/opencv-20160626-26273-1a7s2xo/opencv-2.4.13/modules/core/src/persistence.cpp:5008: error: (-2) The node does not represent a user object (unknown type?) in function cvRead

エラーメッセージによれば、ファイル読込処理cvRead関数からC++例外が送出されているようです。

カスケードのロードするファイルだけ変えましたが、落ちてしまいました。

単にファイルが壊れている(もしくは適切でないデータが入っている)と思われます。

投稿2016/07/29 02:13

yohhoy

総合スコア6191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/29 02:15

そう見たいです。 顔検出できている方は、opencvをダウンロードした時とは別のxmlでした。 golangように作りなおしているのかわかりませんが、調べてみます。
yohhoy

2016/07/29 02:20

(推測ですが)golang用に加工などはされていないはずです。OpenCVのメイン処理はライブラリ内部に記述されており、本来はC++言語インターフェイスをgolangから呼び出せるように薄いラッパーを被せているだけのはずです。
退会済みユーザー

退会済みユーザー

2016/07/29 02:59 編集

なるほど。失礼しました。 その辺も調べてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問