Unverified Commit dc6bfe55 authored by narugo1992's avatar narugo1992 Committed by GitHub
Browse files

Merge pull request #19 from deepghs/dev/face

dev(narugo): detect faces
parents 9e05ed38 36303d7b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -18,8 +18,8 @@ jobs:
        model-name:
          #          - 'lpips'
          #          - 'monochrome'
          - 'person_detect'
          #          - 'face_detect'
          #          - 'person_detect'
          - 'face_detect'
          #          - 'manbits_detect'

    steps:
+14 −0
Original line number Diff line number Diff line
imgutils.detect.face
==========================

.. currentmodule:: imgutils.detect.face

.. automodule:: imgutils.detect.face


detect_faces
------------------------------

.. autofunction:: detect_faces

+37 −0
Original line number Diff line number Diff line
import random

from benchmark import BaseBenchmark, create_plot_cli
from imgutils.detect import detect_faces


class FaceDetectBenchmark(BaseBenchmark):
    def __init__(self, level, version):
        BaseBenchmark.__init__(self)
        self.level = level
        self.version = version

    def load(self):
        from imgutils.detect.face import _open_face_detect_model
        _ = _open_face_detect_model(level=self.level, version=self.version)

    def unload(self):
        from imgutils.detect.face import _open_face_detect_model
        _open_face_detect_model.cache_clear()

    def run(self):
        image_file = random.choice(self.all_images)
        _ = detect_faces(image_file, level=self.level, version=self.version)


if __name__ == '__main__':
    create_plot_cli(
        [
            ('face v1 (yolov8s)', FaceDetectBenchmark('s', 'v1')),
            ('face v1 (yolov8n)', FaceDetectBenchmark('n', 'v1')),
            ('face v0 (yolov8s)', FaceDetectBenchmark('s', 'v0')),
            ('face v0 (yolov8n)', FaceDetectBenchmark('n', 'v0')),
        ],
        title='Benchmark for Anime Face Detections',
        run_times=10,
        try_times=20,
    )()
+2491 −0

File added.

Preview size limit exceeded, changes collapsed.

+19 −0
Original line number Diff line number Diff line
from imgutils.detect import detect_faces
from imgutils.detect.visual import detection_visualize
from plot import image_plot


def _detect(img, **kwargs):
    return detection_visualize(img, detect_faces(img, **kwargs))


if __name__ == '__main__':
    image_plot(
        (_detect('nian.png'), 'large scale'),
        (_detect('two_bikini_girls.png'), 'closed faces'),
        (_detect('genshin_post.jpg'), 'multiple'),
        (_detect('mostima_post.jpg'), 'anime style'),
        save_as='face_detect.dat.svg',
        columns=2,
        figsize=(12, 9),
    )
Loading