package proc import ( "analysis/logo" "analysis/util" "analysis/work/sdk" "os" "basic.com/valib/gogpu.git" ) // gpu信息,依次:检测thread,数量,角度,property thread, extract thread, track interval, 图片尺寸 func createFaceDetect(gpuIndex, threads, faceNum, faceAngle, trackInterval, sampleSize int) (sdk.Engine, bool) { if !gogpu.SatisfyGPU(faceMustGPU0, faceGMem, reservedGMem) { logo.Errorln("CAN'T USE FACE NEEDED GPU 0 FOR : FaceDetect No GPU Memory") os.Exit(130) return nil, false } thrds := threads if thrds > sdk.MaxFaceDetectThreadNum { thrds = sdk.MaxFaceDetectThreadNum } return sdk.NewEFDetectWithTrack(faceMustGPU0, thrds, faceNum, faceAngle, trackInterval, sampleSize), true } func createFaceTrack(gpuIndex, threads, faceNum, faceAngle, trackInterval, sampleSize int) (sdk.Engine, bool) { return createFaceDetect(gpuIndex, threads, faceNum, faceAngle, trackInterval, sampleSize) } func createYolo(gpuIndex int) (sdk.Engine, bool) { if !util.IsFileExist(cfg) || !util.IsFileExist(weights) || !util.IsFileExist(name) { logo.Errorln("YOLO CREATE NEED WEIGHTS NAME CFG FILE, BUT NOT FOUND") return nil, false } gi := gpuIndex if gi == -1 { gi = priorGPU(faceMustGPU0, yoloGMem, reservedGMem) if gi == -1 { logo.Errorln("CAN'T USE GPU FOR : Yolo No GPU Memory") os.Exit(130) return nil, false } } return sdk.NewYDetectWithTrack(gi, cfg, weights, name), true }