Code Monkey home page Code Monkey logo

yolov8-face-landmarks-opencv-dnn's Introduction

yolov8-face-landmarks-opencv-dnn

使用OpenCV部署yolov8检测人脸和关键点,包含C++和Python两个版本的程序,只依赖opencv库就可以运行。

训练源码是https://github.com/derronqi/yolov8-face 如果想做车牌检测4个角点,那就把检测5个人脸关键点改成4个

此外,添加了人脸质量评估模型fqa,需要结合人脸检测来使用,对应的程序是main_fqa.py和main_fqa.cpp

yolov8-face-landmarks-opencv-dnn's People

Contributors

hpc203 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

yolov8-face-landmarks-opencv-dnn's Issues

关于输出类别的问题

我想请教一下如何获得被识别物体的类别,我用cls_id但得到的不是正确的数字,谢谢

.cpp程序报错

Ubuntu 20.04 系统,OpenCV尝试了4.5.5版本和4.7版本,验证了模型文件.onnx无错误,在使用onnxruntime和main.cpp两种部署方式时均返回下述报错

terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(4.5.5) /home/hou/opencv-4.5.5/modules/dnn/src/onnx/onnx_importer.cpp:709: error: (-215:Assertion failed) model_proto.has_graph() in function 'populateNet'

已放弃 (核心已转储)

大佬知道这是什么原因吗

yolov8face export yolov8-lite-s and yolov8-lite-t error

我用export 导出yolov8n-face到onnx没问题,但是yolov8-lite-s and yolov8-lite-t就报错,大佬你是咋导出的呀
yolo mode=export model=yolov8-lite-s.pt format=onnx simplify=True batch=1

Traceback (most recent call last):
File "/home/pcb/.local/bin/yolo", line 8, in
sys.exit(entrypoint())
File "/home/pcb/.local/lib/python3.8/site-packages/ultralytics/yolo/cfg/init.py", line 378, in entrypoint
model = YOLO(model, task=task)
File "/home/pcb/.local/lib/python3.8/site-packages/ultralytics/yolo/engine/model.py", line 107, in init
self._load(model, task)
File "/home/pcb/.local/lib/python3.8/site-packages/ultralytics/yolo/engine/model.py", line 156, in _load
self.model, self.ckpt = attempt_load_one_weight(weights)
File "/home/pcb/.local/lib/python3.8/site-packages/ultralytics/nn/tasks.py", line 578, in attempt_load_one_weight
ckpt, weight = torch_safe_load(weight) # load ckpt
File "/home/pcb/.local/lib/python3.8/site-packages/ultralytics/nn/tasks.py", line 518, in torch_safe_load
return torch.load(file, map_location='cpu'), file # load
File "/home/pcb/.local/lib/python3.8/site-packages/torch/serialization.py", line 607, in load
return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
File "/home/pcb/.local/lib/python3.8/site-packages/torch/serialization.py", line 882, in _load
result = unpickler.load()
File "/home/pcb/.local/lib/python3.8/site-packages/torch/serialization.py", line 875, in find_class
return super().find_class(mod_name, name)
AttributeError: Can't get attribute 'StemBlock' on <module 'ultralytics.nn.modules' from '/home/pcb/.local/lib/python3.8/site-packages/ultralytics/nn/modules/init.py'>

yolov8_tracking

能不能出一期yolov8目标追踪的c++ onnxruntime部署方法呀

tensorrt加速

大佬,你试过tensorrt加速吗,如果要使用tensorrt,应该怎么处理呀

openCV是4.6还是4.7版本呢,我用4.7版本会报错。yolov8官方的example里面的cpp推理也会报错。不知道是不是安装错误了。

控制台输出如下:

[ INFO:[email protected]] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Windows\SYSTEM32\opencv_core_parallel_onetbb470_64d.dll => FAILED
[ INFO:[email protected]] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_onetbb470_64d.dll => FAILED
[ INFO:[email protected]] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Windows\SYSTEM32\opencv_core_parallel_tbb470_64d.dll => FAILED
[ INFO:[email protected]] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_tbb470_64d.dll => FAILED
[ INFO:[email protected]] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Windows\SYSTEM32\opencv_core_parallel_openmp470_64d.dll => FAILED
[ INFO:[email protected]] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_openmp470_64d.dll => FAILED

关键点坐标错误

我用yolov8-face训练出来的 关键点只有4个的模型 在pytorch上跑的坐标都是正确的
但是在dnn调用后的坐标混乱
也可能是关键点相关代码需要特殊修改?

AttributeError: 'tuple' object has no attribute 'flatten'

图片无人脸情况下,cv2.dnn.NMSBoxes输出的indices是空的tuple()。
有人脸情况下输出的是array([2])。
所以if len(indices) > 0: 判断这里是无效的,会在上一句直接报错。烦请修改一下

Please explain this error: ValueError operands could not be broadcast together with shapes (6400,) (1600,)

I'm running main.py and getting this error.

yolov8-face-landmarks-opencv-dnn on main via 🐍 v3.8.10
❯ py main.py
Traceback (most recent call last):
  File "main.py", line 171, in <module>
    boxes, scores, classids, kpts = YOLOv8_face_detector.detect(srcimg)
  File "main.py", line 75, in detect
    det_bboxes, det_conf, det_classid, landmarks = self.post_process(outputs, scale_h, scale_w, padh, padw)
  File "main.py", line 92, in post_process
    bbox = self.distance2bbox(anchors, bbox_pred, max_shape=(self.input_height, self.input_width)) * stride
  File "main.py", line 134, in distance2bbox
    x1 = points[:, 0] - distance[:, 0]
ValueError: operands could not be broadcast together with shapes (6400,) (1600,)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.