• [Atlas 300] 使用OpenCV作为解码端的注意事项
    如果使用opencv读取一张图片或者解码一段视频,将Mat里面的data作为ACL的输入buffer时,需要注意的是OpenCV对于RGB图像的数据排列方式为HWC,而使用caffe模型转换得到的om模型则是CHW的数据排列。此时可使用opencv里面的split函数将Mat分离成3张单通道图片,再将三段内存拼接作为ACL的输入buffer即可。-----广州鲲鹏+昇腾生态创新中心
  • [问题求助] atlas200DK上用opencv读取视频文件返回为False
    我再python3环境编译opencv使用没问题,但是读取视频文件返回为False下面代码我再Ubuntu上面测试没有问题,但是再开发版上success直接返回False,请问是开发版不支持吗,视频文件经过检查不存在问题import cv2videoCapture = cv2.VideoCapture("video.mp4")success, frame = videoCapture.read()print("read status:",success)while success:  # 循环直到没有帧了    cv2.imshow("result",frame)    cv2.waitKey(1)    success, frame = videoCapture.read()
  • [技术干货] 【扩展作业】使用dlib、MTCNN、OpenCV检测工具比较分析
    人脸检测技术在我们生活中经常被用到,人脸面部识别、年龄以及表情的识别都是以人脸为基础。目前常用的人脸检测工具有:OpenCV Haar级联分类器、MTCNN方式、dlib方式等等,本文主要基于安装时长、检测时长、和检测准确度进行dlib、MTCNN、OpenCV检测工具对比。实验结果:从数据我们可以得出如下结论:从安装时长考虑:dlib工具安装时长最长,OpenCV工具由于环境自带没有可比性;从检测时长考虑:OpenCV工具明显优于dlib、MTCNN工具。从检测准确度考虑:MTCNN工具人脸全部检测出来,关键点检测齐全,准确度最高;dlib工具人脸全部检测出来关键点检测有部分遗漏,准确度次之;OpenCV工具人脸有遗漏。实验截图:一、dlib工具检测1、安装2、首次检测3、再次检测二、MTCNN工具检测1、安装2、首次检测3、再次检测三、OpenCV工具1、首次检测2、再次检测
  • 鲲鹏arm 安装 numpy opencv opencv_contrib
    1,前置条件yum install numpy opencv* python-devel gstreamer-plugins-base-devel libv4l-devel libpng-devel libjpeg-turbo-devel jasper-devel openexr-devel libtiff-devel libwebp-devel python-sphinx texlive python3-devel python3.aarch64 -y python3 -m pip install cython yum install blas-devel lapack-devel python3-devel pip3 install scipy     //会自动安装依赖numpy,本次采用官方源,未使用镜像源加速,安装过程很漫长,因为会自动编译安装  2,安装cmake,参考下边链接http://ic-openlabs.huawei.com/openlab/#/knowledgebasequery?task_id=R1S1584D002187178201911251854493362566973,下载opencv和opencv_contrib,两者版本必须一致,3.2.0测试编译成功,高版本可能失败wget    https://github.com/opencv/opencv/archive/3.2.0.zip wget  https://github.com/opencv/opencv_contrib/archive/3.2.0.zip4,解压,编译unzip 3.2.0.zip unzip 3.2.0.zip.1 cd opencv mkdir -p build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_opencv_python3=YES -D BUILD_opencv_python2=NO -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/local/lib64/python3.6/site-packages/numpy/core/include/ -D OPENCV_EXTRA_MODULES=../../opencv_contrib-3.2.0/modules/ -D  PYTHON3_LIBRARIES=/lib64/libpython3.so -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -D __INSTALL_PATH_PYTHON3=/usr/local/lib/python3.6/site-packages/ ..5,安装make -j$(nproc) make install6,验证
  • [问题求助] DVPP的RESIZE方法,请问有没有对应的OPENCV函数?
    前期和你们交流的时候,说是DVPP的RESIZE用了你们内部自研的NEAREST的方法。请问一下,如果预处理不一致导致精度有损失,是不是只能重新训练?你们的这个自研方法有没有相似的OPENCV函数?
  • [Atlas500] 交叉编译环境下调用opencv
    我根据《aarch64架构linux服务器软件编译与部署指南》在交叉编译环境下安装好了opencv,那我如何将opencv嵌入到代码里呢,在编译的时候需要修改哪些地方呢?
  • [Atlas500] atlas500使用opencv
    请问根据《aarch64架构linux服务器软件编译与部署指南》安装好的opencv是C++调用的吗,有python能使用opencv吗
  • [部署上线] 问题关于 tf2.1-python3.7 推理后在线部署找不到opencv
    推理完成后,部署上线>在线服务 启动后 ```text ... File "/home/mind/model/1/core/utils.py", line 8, in import cv2 File "/home/modelarts/.local/lib/python3.7/site-packages/cv2/__init__.py", line 3, in from .cv2 import * ImportError: libSM.so.6: cannot open shared object file: No such file or directory ... ``` 我在推理时的依赖 ```json { "restraint": "ATLEAST", "package_version": "0.14.5", "package_name": "scikit-image" }, { "restraint": "ATLEAST", "package_version": "1.17.0", "package_name": "numpy" }, { "restraint": "ATLEAST", "package_version": "3.4.4.19", "package_name": "opencv-python" } ```
  • [问题求助] Atlas200 DK 如何交叉部署第三方软件库?如:opencv、ffmpeg、x264等
    第一个问题:Atlas200 DK 如何交叉部署第三方软件库?如:opencv、ffmpeg、x264等?第二个问题:Atlas200 DK是不是也要分host侧和device侧?ddk中包换的opencv应该是device的吧,是不是应该交叉编译一个host侧的opencv等第三方软件库?第三个问题:可否将Atlas500上交叉编译后生成的opencv、ffmepg、x264等文件直接上传到Atlas200 DK相应位置,并修改环境变量后直接使用?第四个问题:可否按照Atlas500交叉编译第三方软件的方法,在Atlas200 DK上部署第三方程序?
  • [技术干货] opencv的RGB三通道转换
    import cv2 img_path='' img=cv2.imread(img_path)此时如果import matplotlib as plt plt.imshow(img)将会得到一个颜色和原图片不同的图片因为一个.jpg的图像,原本是R, G, B三通道,使用OpenCV的imread后会自动变为B,G,R也就是说经过opencv的imread,再通过plt的imshow后,将会显示下面的颜色而若使用cv2.imshow('img',img)仍输出原图因为 opencv的imshow(),imwrite(),imread()都会交换R(red),B(blue)通道通过img_rgb=img[:,:,::-1]切片第一个“:”切片遍历所有行第二个“:”切边遍历所有列第三个“:”遍历所有通道,并且因为最后一个参数(步长)为-1,逆序取值,r,g,b变为b,g,r如果对您有帮助,请动动小手,点个赞吧
  • [技术干货] 【扩展作业】【2020华为云AI实战营】第四章人脸检测扩展作业
    华为云AI实战训练营第四章扩展作业华为云账号:hw54888057    今天尝试使用作业中给出的代码对OpenCv、MTCNN、dlib三种检测人脸的工具进行一个小的比较。我是一个刚刚入门的小白,如果有表达得不完善和错漏之处,请各位指出,感激不尽。    在这里我选择使用包含多张人脸的图片进行检测,先选了两张,如下:                                                                                                img4.jpg                                                                            img1.jpeg    首先使用给的OpenCv代码段,分别对第一张图片和第二张图片进行人脸检测:#导入模型 path="/home/ma-user/anaconda3/envs/TensorFlow-1.13.1/lib/python3.6/site-packages/cv2/data/haarcascade_frontalface_alt.xml" import cv2 face_cascade = cv2.CascadeClassifier(path) #修改为自己的图片文件名 #image_path = "./img1.jpeg"  image_path = "./img4.jpg" img = cv2.imread(image_path) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray,1.3,5) for(x,y,w,h) in faces:     cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) from PIL import Image Image.fromarray(img)    结果是这样的,第一张图片一共有6张人脸,只检测出来4张,而第二张图片2张人脸,只检测出来1张:    可见检测结果并不是十分可靠,那么我在不改变参数的情况下,将两张图片所有人脸单独切割出来,分别进行检测:           从结果中可以看到,图一中的6张人脸能够检测出5张,而图二中的两张人脸能够全部检测出来,准确度提升了一些。在我并没有改变参数和对图片进行除了裁剪之外的额外处理下的情况下,检测的准确度会发生变化,但这并不符合我们日常的使用习惯,我尝试更改参数,进行第二轮实验。    在下面这一行代码中,一共有三个自定义参数,而定义如下图:faces = face_cascade.detectMultiScale(gray,1.3,5)        这里我选择更改scaleFactor这个参数,因为我认为图像的比例跟检测的结果有关,那么每次图像缩小的比例越小,检测的准确度应该会大一点。我先将其从1.3改成默认的1.1,即:scaleFactor=1.1faces = face_cascade.detectMultiScale(gray,1.1,5)    检测结果如下:看来调整之后的精度提高了一些,但是图一中还是有一张人脸没有检测出来,我再次将该参数调低到1.03,如下:faces = face_cascade.detectMultiScale(gray,1.03,5)scaleFactor=1.03结果如下:所有人脸都能检测出来了,而当我将该参数调低到1.01时,另外一种情况发生了:scaleFactor=1.01在图二中非人脸的区域,检测到了人脸。。。在scaleFactor参数为1.03,1.1,1.3时,我又对其它同时包含大脸和小脸的多人集体照进行识别,结果如下:scaleFactor=1.03,两张人脸未检出scaleFactor=1.1,两张人脸未检测出scaleFactor=1.3,五张人脸未检测出    关于OpenCv的测试我就先写到这里,可见,适当地调整某些参数能将人脸检测的准确度提高,但选择最合适的参数还需要在大量的数据集中进行验证。另外,在相同参数的情况下,在原图中不能够识别到人脸但裁剪图片能够识别的情况我还没有想明白,希望有大佬们可以解答我的疑惑。。。。 下面使用dlib进行人脸检测的相关测试:    还是使用以上的图片,代码如下:!pip install dlib==19.17.0import dlib cnn_face_detector=dlib.cnn_face_detection_model_v1("../FaceRecognition/models/detector.dat") image=dlib.load_rgb_image("./img4.jpg") dets=cnn_face_detector(image,1) print("number of faces datected: {}".format(len(dets))) for i,d in enumerate(dets):     print("Detection{%s}: Left:{%s} Top:{%s } Right:{%s} Bottom:{%s} " % (i,format(d.rect.left()),format(d.rect.top()),format(d.rect.right()),format(d.rect.bottom())))     cv2.rectangle(image,(d.rect.left(),d.rect.top()),(d.rect.right(),d.rect.bottom()),(0,255,0),2) from PIL import Image Image.fromarray(image)结果如下图:哦天哪,在我费力地更改上面OpenCv代码参数情况下,使用dilb居然几乎将所有人脸都检测出来了。。只剩下最后一张只有不到半个脸露面的小男孩没有检测出来。但是我发现它检测出来的人脸貌似有点小,有些人脸并不能完全嵌进去,很多都只是框住了五官。使用MTCNN库进行人脸检测!pip install mtcnn==0.0.8from mtcnn.mtcnn import MTCNN detector = MTCNN() import cv2 img = cv2.cvtColor( cv2.imread("./img4.jpg"), cv2.COLOR_BGR2RGB) from PIL import Image Image.fromarray(img) results = detector.detect_faces(img) #print(results)for result in results: #     print(result['box'][0])     cv2.rectangle(img,(result['box'][0],result['box'][1]),(result['box'][2]+result['box'][0],result['box'][3]+result['box'][1]),(0,255,0),2) from PIL import Image Image.fromarray(img)    对比OpenCv和dlib库,可以发现,使用MTCNN库进行人脸检测能够将这三张图中的所有人脸检测出来,不过也出现了检测到非人脸范围的情况。但是我认为在人脸范围内比上面使用dlib检测得更加贴近人的真实面部,并且能够检测出上面两种方法都检测不到的露出半张脸的小男孩。   总结一下:在以上的测试中,我认为dlib和MTCNN库的准确度比较好,MTCNN更是能识别出部分人脸,但会检测到非人脸的情况。而在人脸的标识中,我认为OpenCv和MTCNN表现得比较好,而dlib的矩形框有点小。    目前所有的测试就进行到这里,希望能够抛砖引玉,如有错漏请大家提出。。
  • [Atlas500] Euler.cmake
    Euler.cmake在opt目录下使用cmake -DCMAKE_TOOLCHAIN_FILE=/opt/Euler.cmake .这条命令时出现以下错误:然后我试了编译opencv,可以编译成功,我按照上面的操作,可以正常完成编译过程,这个里面也有-DCMAKE_TOOLCHAIN_FILE=/opt/Euler.cmake这条命令,为什么在opencv的编译过程中可以成功,在opt目录下去执行编译会报错,请教大佬!
  • [技术干货] 【扩展作业】关于dlib、MTCNN、OpenCV的测试及看法
    新手出战,如有不严谨不规范不正确请指出,共同进步,谢谢!拓展作业我选取了五张不同图片[正面人脸,较小人脸,侧面人脸,多张人脸,卡通人脸],话不多说直接上三种测试结果图:一、正面人脸①dlib②MTCNN③OpenCV二、较小人脸①dlib②MTCNN③OpenCV三、侧面人脸①dlib②MTCNN③OpenCV四、多张人脸①dlib②MTCNN③OpenCV五、卡通人脸①dlib②MTCNN③OpenCV从上面的截图中我们观察到:dlib的计算时间大约在6-7秒MTCNN的计算时间大约在3秒左右OpenCV的计算时间大约在3秒左右,个别情况下会达到6秒下面来说说我的看法(通俗些,可能不太规范):dlib在三种人脸测试中是最为精准精细的,同样耗时最长。68个点可以很清晰的看出五官位置我们可以根据点描绘出人脸原貌,但是局限于清晰的正面照,而且侧面人脸识别不出来,多张人脸照无法全部识别MTCNN是三种人脸测试中最为中规中矩的,耗时适中,侧面人脸照可以识别出来,OpenCV是完全识别不出来的,dlib无法精准识别,但是MTCNN对于多张人脸的识别就无法全部识别出来OpenCV是三种人脸测试中最为迅速通用的,耗时适中,侧面人脸照完全识别不出来,但是多张人脸都可以识别出来,方框区域较大,相较另外两种测试方法,不是那么的精准。我认为三种人脸测试适用的场景与领域:dlib适用于实时测谎仪(眉毛一动,嘴角抽搐,你说谎了!私房钱被找到了),医疗领域(脸部穴位,远程医疗,操作机械手臂)MTCNN适用于占卜看面相(2020你们都会发财!),制作真人表情包(脑袋是个可爱的居头)OpenCV适用于打卡(不需要太精密),智能证件照服务(整个截取下来,抠个图就能用了)以上就是我关于三种人脸测试的测试及看法,谢谢!
  • [技术干货] 【转载】【2020华为云AI实战营】MTCNN、dlib、OpenCv(haar+adaboost级联分类器)三种人脸检测工具比
    【转载华为云社区】一、绪言:    人脸检测技术在我们生活中经常被用到,人脸面部识别、年龄以及表情的识别都是以人脸为基础。目前常用的人脸检测工具有:MTCNN方式、dlib、OpenCV Haar级联分类器等方式。    人脸检测工具使用常见问题如下:    安装时间长    检测时间长    图片中的较小人脸检测效果差    图片中的侧面人脸检测效果差    对图片中多张人脸无法全部检测出来等等问题,这些问题也同样是人脸检测算法面临的挑战。    本文将对MTCNN、dlib、OpenCV三种工具进行测试对比。二、工具简介:MTCNN:        官网:https://kpzhang93.github.io/MTCNN_face_detection_alignment/        MTCNN的安装和使用都十分简单,完成人脸区域检测人脸对齐及5个人脸关键点(双眼,鼻子,嘴角)检测但对于人脸识别,年龄表情等任务已经足够,所以使用十分普遍。    2.dlib:         官网: http://dlib.net/.         dlib是一个机器学习工具库,类似OpenCV,里面预置了一些开发好的传统机器学习算法和深度学习算法。        本案例使用dlib工具库进行人脸区域检测和68个人脸关键点检测。    3.OpenCV(Haar+Adaboost,后文以OpenCV代替):       官网: https://opencv.org/        OpenCV是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。        OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。三、实验对比比较:        实验环境: ModelArts  nootbook开发环境 - v100 GPU- TensorFlow 1.13    耗时计算仅包含测试图片读取及代码库加载时间,不包含测试结果显示耗时    1.正面单脸图片 实验    1.1.MTCNN(单脸正面):          上图是单脸图片的人脸检测,MTCNN耗时大概3s多(含模型加载等,与图片大小等亦有关,下同),含5个关键点,检测结果可见比较准确,但仍有少部分轮廓未能完全检测。        1.2.dlib(单脸正面):相对MTCNN来说,dlib单脸检测速度更快一些,但未能完全检测出全部脸轮廓,含68个关键点信息,但此处不显示。    1.3.OpenCV(单脸正面):        相对MTCNN和dlib而言,OpenCV检测速度更快,定性来看,检测结果几乎能全部包含脸部轮廓,但有非脸部部分会被误认为是脸部。无关键点信息。    2.正面多脸含小脸图片 实验    2.1 MTCNN(多脸 正面 小脸): 仅有小脸的boundding box检测出。可能是程序参数设置导致的,比如OpenCV工具默认有3个矩形框同时存在才认为匹配成功,下同。    速度较慢,单看小脸检测出的结果,准确度较高。    2.2 dlib(多脸 正面 小脸):仅有大脸的boundding box检测出。    速度相对于MTCNN有所提升,单看大脸检测出的结果,准确度不如MTCNN。含68个关键点信息,但此处不显示。    2.3 OpenCV(多脸 正面 小脸): 结果可见最小脸并没有检测出。    速度仍是三者中最快的,准确度一般,和单脸正面图片检测类似,仍然会有非脸部分被误认为是脸部。四、结果分析:    综合定性比较来看:    在检测准确度(检测框与真实脸部对比,非整体检测结果准确度)方面 MTCNN要好于dlib和OpenCV    在检测速度方面,OpenCV(Haar+Adaboost)明显优于MTCNN和dlib    以上仅为个人定性分析结果。如果需要定量分析,可考虑计算预测bounding box与ground truth bounding box的IoU等定量方式加以比较。五、程序:    1.MTCNN 2.dlib3.OpenCV六、参考链接:    MTCNN:      https://kpzhang93.github.io/MTCNN_face_detection_alignment/    https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_face_age_prediction/face_age_prediction.ipynb    dlib:     https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_face_detector/face_detection.ipynb    OpenCV:    https://bbs.huaweicloud.com/blogs/179012
  • [技术干货] 【扩展作业】关于MTCNN、dlib、OpenCv(haar+adaboost) 三种人脸检测工具比较分析
    一、绪言:    人脸检测技术在我们生活中经常被用到,人脸面部识别、年龄以及表情的识别都是以人脸为基础。目前常用的人脸检测工具有:MTCNN方式、dlib、OpenCV Haar级联分类器等方式。    人脸检测工具使用常见问题如下:    安装时间长    检测时间长    图片中的较小人脸检测效果差    图片中的侧面人脸检测效果差    对图片中多张人脸无法全部检测出来等等问题,这些问题也同样是人脸检测算法面临的挑战。    本文将对MTCNN、dlib、OpenCV三种工具进行测试对比。二、工具简介:MTCNN:        官网:https://kpzhang93.github.io/MTCNN_face_detection_alignment/        MTCNN的安装和使用都十分简单,完成人脸区域检测人脸对齐及5个人脸关键点(双眼,鼻子,嘴角)检测但对于人脸识别,年龄表情等任务已经足够,所以使用十分普遍。    2.dlib:         官网: http://dlib.net/.          dlib是一个机器学习工具库,类似OpenCV,里面预置了一些开发好的传统机器学习算法和深度学习算法。        本案例使用dlib工具库进行人脸区域检测和68个人脸关键点检测。    3.OpenCV(Haar+Adaboost,后文以OpenCV代替):       官网: https://opencv.org/        OpenCV是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。        OpenCV 的应用领域非常广泛,包括图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。三、实验对比比较:        实验环境: ModelArts  nootbook开发环境 - v100 GPU- TensorFlow 1.13    耗时计算仅包含测试图片读取及代码库加载时间,不包含测试结果显示耗时    1.正面单脸图片 实验    1.1.MTCNN(单脸正面):             上图是单脸图片的人脸检测,MTCNN耗时大概3s多(含模型加载等,与图片大小等亦有关,下同),含5个关键点,检测结果可见比较准确,但仍有少部分轮廓未能完全检测。        1.2.dlib(单脸正面):            相对MTCNN来说,dlib单脸检测速度更快一些,但未能完全检测出全部脸轮廓,含68个关键点信息,但此处不显示。    1.3.OpenCV(单脸正面):            相对MTCNN和dlib而言,OpenCV检测速度更快,定性来看,检测结果几乎能全部包含脸部轮廓,但有非脸部部分会被误认为是脸部。无关键点信息。    2.正面多脸含小脸图片 实验    2.1 MTCNN(多脸 正面 小脸):             仅有小脸的boundding box检测出。可能是程序参数设置导致的,比如OpenCV工具默认有3个矩形框同时存在才认为匹配成功,下同。    速度较慢,单看小脸检测出的结果,准确度较高。    2.2 dlib(多脸 正面 小脸):            仅有大脸的boundding box检测出。    速度相对于MTCNN有所提升,单看大脸检测出的结果,准确度不如MTCNN。含68个关键点信息,但此处不显示。    2.3 OpenCV(多脸 正面 小脸):            结果可见最小脸并没有检测出。    速度仍是三者中最快的,准确度一般,和单脸正面图片检测类似,仍然会有非脸部分被误认为是脸部。四、结果分析:    综合定性比较来看:    在检测准确度(检测框与真实脸部对比,非整体检测结果准确度)方面 MTCNN要好于dlib和OpenCV    在检测速度方面,OpenCV(Haar+Adaboost)明显优于MTCNN和dlib    以上仅为个人定性分析结果。如果需要定量分析,可考虑计算预测bounding box与ground truth bounding box的IoU等定量方式加以比较。五、程序:    1.MTCNN           2.dlib          3.OpenCV      六、参考链接:    MTCNN:      https://kpzhang93.github.io/MTCNN_face_detection_alignment/    https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_face_age_prediction/face_age_prediction.ipynb    dlib:     https://nbviewer.jupyter.org/github/huaweicloud/ModelArts-Lab/blob/master/notebook/DL_face_detector/face_detection.ipynb    OpenCV:    https://bbs.huaweicloud.com/blogs/179012
总条数:305 到第
上滑加载中