From 4e245c8fada7b811c5d03e52b6b4c39c631cb832 Mon Sep 17 00:00:00 2001 From: kweijack Date: Wed, 3 Jul 2024 13:13:00 +0000 Subject: [PATCH] feat: added yoloface --- go.mod | 1 + go.sum | 2 + model/yoloface/README.md | 41 +++++++ model/yoloface/output.jpg | Bin 0 -> 89135 bytes model/yoloface/post.go | 155 +++++++++++++++++++++++++ model/yoloface/pre.go | 81 +++++++++++++ model/yoloface/yoloface.go | 46 ++++++++ model_repository/yoloface/config.pbtxt | 2 + 8 files changed, 328 insertions(+) create mode 100644 model/yoloface/README.md create mode 100644 model/yoloface/output.jpg create mode 100644 model/yoloface/post.go create mode 100644 model/yoloface/pre.go create mode 100644 model/yoloface/yoloface.go create mode 100644 model_repository/yoloface/config.pbtxt diff --git a/go.mod b/go.mod index dbf5ec4..17d15c9 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/dev6699/face go 1.22.4 require ( + gocv.io/x/gocv v0.37.0 google.golang.org/grpc v1.64.0 google.golang.org/protobuf v1.34.2 ) diff --git a/go.sum b/go.sum index 9240e22..b3448b7 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +gocv.io/x/gocv v0.37.0 h1:sISHvnApErjoJodz1Dxb8UAkFdITOB3vXGslbVu6Knk= +gocv.io/x/gocv v0.37.0/go.mod h1:lmS802zoQmnNvXETpmGriBqWrENPei2GxYx5KUxJsMA= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= diff --git a/model/yoloface/README.md b/model/yoloface/README.md new file mode 100644 index 0000000..fe660a8 --- /dev/null +++ b/model/yoloface/README.md @@ -0,0 +1,41 @@ +## Yoloface with face landmark5 detection + + + +--- +Model description +[Get model](https://github.com/facefusion/facefusion-assets/releases/download/models/yoloface_8n.onnx) +``` +{ + "name": "yoloface", + "versions": [ + "1" + ], + "platform": "onnxruntime_onnx", + "inputs": [ + { + "name": "images", + "datatype": "FP32", + "shape": [ + 1, + 3, + 640, + 640 + ] + } + ], + "outputs": [ + { + "name": "output0", + "datatype": "FP32", + "shape": [ + 1, + 20, + 8400 + ] + } + ] +} +``` + + diff --git a/model/yoloface/output.jpg b/model/yoloface/output.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7797d86bbf894f2d71f64bcf058674ae3fdb3647 GIT binary patch literal 89135 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�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%0AjsL#&5S{RJDp7 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 N6jHQS# literal 0 HcmV?d00001 diff --git a/model/yoloface/post.go b/model/yoloface/post.go new file mode 100644 index 0000000..40ac2bd --- /dev/null +++ b/model/yoloface/post.go @@ -0,0 +1,155 @@ +package yoloface + +import ( + "math" + "sort" + + "github.com/dev6699/face/model" + "gocv.io/x/gocv" +) + +type Detection struct { + BoundingBox model.BoundingBox + FaceLandmark5 []gocv.Point2f + Confidence float32 +} + +func (m *Model) PostProcess(rawOutputContents [][]byte) (*Output, error) { + // outputs": [ + // { + // "name": "output0", + // "datatype": "FP32", + // "shape": [ + // 1, + // 20, + // 8400 + // ] + // } + // ] + outputCount := 8400 + rawDetections, err := model.BytesToFloat32Slice(rawOutputContents[0]) + if err != nil { + return nil, err + } + ratioWidth := m.ratioWidth + ratioHeight := m.ratioHeight + + var detections []Detection + + boundingBoxRaw := rawDetections[:4*outputCount] + scoreRaw := rawDetections[4*outputCount : 5*outputCount] + faceLandmark5Raw := rawDetections[5*outputCount:] + + for i := 0; i < outputCount; i++ { + score := scoreRaw[i] + if score < m.faceDetectorScore { + continue + } + + d := Detection{ + Confidence: score, + } + + bboxRaw := []float32{ + boundingBoxRaw[i], + boundingBoxRaw[i+outputCount], + boundingBoxRaw[i+outputCount*2], + boundingBoxRaw[i+outputCount*3], + } + + d.BoundingBox = model.BoundingBox{ + X1: float64(bboxRaw[0]-bboxRaw[2]/2) * float64(ratioWidth), + Y1: float64(bboxRaw[1]-bboxRaw[3]/2) * float64(ratioHeight), + X2: float64(bboxRaw[0]+bboxRaw[2]/2) * float64(ratioWidth), + Y2: float64(bboxRaw[1]+bboxRaw[3]/2) * float64(ratioHeight), + } + + faceLandmark5Extract := []float32{} + for j := 0; j < 15; j++ { + if (j-2)%3 == 0 { + continue + } + + idx := j*outputCount + i + fl := faceLandmark5Raw[idx] + if j%3 == 0 { + fl *= ratioWidth + } + if (j-1)%3 == 0 { + fl *= ratioHeight + } + + faceLandmark5Extract = append(faceLandmark5Extract, fl) + } + + faceLandmark5 := []gocv.Point2f{} + for j := 0; j < len(faceLandmark5Extract); j += 2 { + faceLandmark5 = append(faceLandmark5, + gocv.Point2f{ + X: faceLandmark5Extract[j], + Y: faceLandmark5Extract[j+1], + }) + } + d.FaceLandmark5 = faceLandmark5 + detections = append(detections, d) + } + + keepIndices := applyNMS(detections, m.iouThreshold) + keepDetections := make([]Detection, len(keepIndices)) + for i, idx := range keepIndices { + keepDetections[i] = detections[idx] + } + + sort.Slice(keepDetections, func(i, j int) bool { + return keepDetections[i].Confidence > keepDetections[j].Confidence + }) + + return &Output{ + Detections: keepDetections, + }, nil +} + +// applyNMS performs non-maximum suppression to eliminate duplicate detections. +func applyNMS(detections []Detection, iouThreshold float64) []int { + boundingBoxList := []model.BoundingBox{} + for _, d := range detections { + boundingBoxList = append(boundingBoxList, d.BoundingBox) + } + + var keepIndices []int + indices := make([]int, len(boundingBoxList)) + for i := range boundingBoxList { + indices[i] = i + } + + areas := make([]float64, len(boundingBoxList)) + for i, box := range boundingBoxList { + areas[i] = (box.X2 - box.X1 + 1) * (box.Y2 - box.Y1 + 1) + } + + for len(indices) > 0 { + index := indices[0] + keepIndices = append(keepIndices, index) + var remainIndices []int + + for _, i := range indices[1:] { + xx1 := math.Max(boundingBoxList[index].X1, boundingBoxList[i].X1) + yy1 := math.Max(boundingBoxList[index].Y1, boundingBoxList[i].Y1) + xx2 := math.Min(boundingBoxList[index].X2, boundingBoxList[i].X2) + yy2 := math.Min(boundingBoxList[index].Y2, boundingBoxList[i].Y2) + + width := math.Max(0, xx2-xx1+1) + height := math.Max(0, yy2-yy1+1) + intersection := width * height + union := areas[index] + areas[i] - intersection + iou := intersection / union + + if iou <= iouThreshold { + remainIndices = append(remainIndices, i) + } + } + indices = remainIndices + } + + return keepIndices +} diff --git a/model/yoloface/pre.go b/model/yoloface/pre.go new file mode 100644 index 0000000..6bb3089 --- /dev/null +++ b/model/yoloface/pre.go @@ -0,0 +1,81 @@ +package yoloface + +import ( + "image" + "math" + + "github.com/dev6699/face/protobuf" + "gocv.io/x/gocv" +) + +func (m *Model) PreProcess(i *Input) ([]*protobuf.InferTensorContents, error) { + img := i.Img + width := img.Cols() + height := img.Rows() + + faceDetectorSize := Resolution{Width: 640, Height: 640} + resizedVisionFrame, newWidth, newHeight := resizeFrameResolution(img.Clone(), faceDetectorSize) + defer resizedVisionFrame.Close() + + ratioHeight := float32(height) / float32(newHeight) + ratioWidth := float32(width) / float32(newWidth) + m.ratioHeight = ratioHeight + m.ratioWidth = ratioWidth + + contents := &protobuf.InferTensorContents{ + Fp32Contents: prepareDetectFrame(resizedVisionFrame, faceDetectorSize), + } + return []*protobuf.InferTensorContents{contents}, nil +} + +type Resolution struct { + Width uint + Height uint +} + +// resizeFrameResolution resize visionFrame where its resolution will be capped at maxResolution. +func resizeFrameResolution(visionFrame gocv.Mat, maxResolution Resolution) (gocv.Mat, uint, uint) { + width := visionFrame.Cols() + height := visionFrame.Rows() + + maxHeight := int(maxResolution.Height) + maxWidth := int(maxResolution.Width) + + if height > maxHeight || width > maxWidth { + scale := math.Min(float64(maxHeight)/float64(height), float64(maxWidth)/float64(width)) + newWidth := int(float64(width) * scale) + newHeight := int(float64(height) * scale) + + gocv.Resize(visionFrame, &visionFrame, image.Point{X: newWidth, Y: newHeight}, 0, 0, gocv.InterpolationDefault) + return visionFrame, uint(newWidth), uint(newHeight) + } + + return visionFrame, uint(width), uint(height) +} + +func prepareDetectFrame(visionFrame gocv.Mat, faceDetectorSize Resolution) []float32 { + faceDetectorWidth := int(faceDetectorSize.Width) + faceDetectorHeight := int(faceDetectorSize.Height) + + detectVisionFrame := gocv.NewMatWithSize(faceDetectorHeight, faceDetectorWidth, gocv.MatTypeCV8UC3) + defer detectVisionFrame.Close() + + roi := detectVisionFrame.Region(image.Rect(0, 0, visionFrame.Cols(), visionFrame.Rows())) + defer roi.Close() + visionFrame.CopyTo(&roi) + + output := make([]float32, 3*faceDetectorHeight*faceDetectorWidth) + idx := 0 + for y := 0; y < faceDetectorHeight; y++ { + for x := 0; x < faceDetectorWidth; x++ { + pixel := detectVisionFrame.GetVecbAt(y, x) + + output[idx] = (float32(pixel[0]) - 127.5) / 128.0 + output[faceDetectorHeight*faceDetectorWidth+idx] = (float32(pixel[1]) - 127.5) / 128.0 + output[2*faceDetectorHeight*faceDetectorWidth+idx] = (float32(pixel[2]) - 127.5) / 128.0 + idx++ + } + } + + return output +} diff --git a/model/yoloface/yoloface.go b/model/yoloface/yoloface.go new file mode 100644 index 0000000..1bf6e0a --- /dev/null +++ b/model/yoloface/yoloface.go @@ -0,0 +1,46 @@ +package yoloface + +import ( + "github.com/dev6699/face/model" + "gocv.io/x/gocv" +) + +type Model struct { + faceDetectorScore float32 + iouThreshold float64 + ratioHeight float32 + ratioWidth float32 +} + +type Input struct { + Img gocv.Mat +} + +type Output struct { + Detections []Detection +} + +type ModelT = model.Model[*Input, *Output] + +var _ ModelT = &Model{} + +func NewFactory(faceDetectorScore float32, iouThreshold float64) func() ModelT { + return func() ModelT { + return New(faceDetectorScore, iouThreshold) + } +} + +func New(faceDetectorScore float32, iouThreshold float64) *Model { + return &Model{ + faceDetectorScore: faceDetectorScore, + iouThreshold: iouThreshold, + } +} + +func (m *Model) ModelName() string { + return "yoloface" +} + +func (m *Model) ModelVersion() string { + return "1" +} diff --git a/model_repository/yoloface/config.pbtxt b/model_repository/yoloface/config.pbtxt new file mode 100644 index 0000000..094b869 --- /dev/null +++ b/model_repository/yoloface/config.pbtxt @@ -0,0 +1,2 @@ +name: "yoloface" +platform: "onnxruntime_onnx" \ No newline at end of file