猿问

Golang 异步人脸检测

我正在为 Go使用OpenCV 绑定库,并尝试异步检测 10 个图像中的对象,但不断出现这种恐慌。只检测 4 张图像永远不会失败。


var wg sync.WaitGroup


for j := 0; j < 10; j++ {

    wg.Add(1)

    go func(i int) {

        image := opencv.LoadImage(strconv.Itoa(i) + ".jpg")

        defer image.Release()


        faces := cascade.DetectObjects(image)

        fmt.Println((len(faces) > 0))

        wg.Done()

    }(j)

}


wg.Wait()

我对 OpenCV 和 Go 相当陌生,并试图找出问题所在。我猜一些资源正在耗尽,但是是哪一个。


泛舟湖上清波郎朗
浏览 242回答 3
3回答

慕娘9325324

问题似乎是将级联作为全局变量。一旦我cascade := opencv.LoadHaarClassifierCascade("haarcascade_frontalface_alt.xml")进入 goroutine 一切都很好。
随时随地看视频慕课网APP

相关分类

Go
我要回答