opencv十四天入门学习——task1

  • 前言
  • 1、计算机视觉简介
  • 2、计算机视觉框架
    • 2.1 传统框架
    • 2.2 深度学习训练框架
    • 2.3 深度学习部署框架
    • 2.4 当前业界主流框架应用
  • 3、opencv框架
  • 4、图像读取与显示

前言

最近参加了Datawale组织的opencv两周入门学习教程,每天需要做笔记打卡,就把这里作为分享平台。第一天课程内容主要介绍了计算机视觉的发展、计算机视觉相关框架以及opencv框架等知识点,完成本地开发环境配置并实现了图片的读取和显示。

1、计算机视觉简介

计算机视觉是使用计算机及相关设备对生物视觉的一种模拟。1982年马尔发布的《视觉》标志着计算机视觉成为正式学科。计算机视觉有两个任务:重建和识别,计算机视觉的目标是通过图灵测试(达到人类水准)。早期的研究主要集中于重建方面的任务,而现在随着深度学习在计算机视觉的广泛应用,目前的研究工作更多聚焦于识别任务。2012年AlexNet模型标志着深度学习在视觉领域的流行。

2、计算机视觉框架

2.1 传统框架

  1. Matlab工具箱

    Matlab语言的计算机视觉工具箱有非常多。VLFeat是著名的计算机视觉/图像处理开源项目, 曾获ACM Open Source Software Competition 2010一等奖 ,它是由C语言编写并且提供Matlab接口的。DIPUM Toolbox是冈萨雷斯著名的图像处理教材《数字图像处理》的配套工具包, 主要是书中图像处理算法的实现。

  2. Matrox mil

    由加拿大公司Matrox开发的图像处理软件开发包,是一个图像采集、运输、处理、分析和显示的一整套完整的程序库,包含了大量的优化函数用于图像处理,整个软件功能强大,尤其是图像预处理能力强。

  3. Halcon

    HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。

  4. VisionPro

    康耐视 VisionPro 是领先的计算机式视觉软件。它主要用于设置和部署视觉应用 - 无论是使用相机还是图像采集卡。借助 VisionPro,用户可执行各种功能,包括几何对象定位和检测、识别、测量和对准,以及针对半导体和电子产品应用的专用功能。

  5. SimpleCV

    SimpleCV代表简单计算机视觉,它是一个易于使用的Python框架,将开源计算机视觉库和用于解决问题的算法捆绑在一起。 它的目标是使程序员更容易开发计算机视觉系统,从而简化和简化许多最常见的任务。

  6. BoofCV

    BoofCV 是一个 Java 的全新实时的计算机视觉库,BoofCV 易于使用而且具有非常高的性能。它提供了一系列从低层次的图像处理、小波去噪功能以及更高层次的三维几何视野。

  7. Dlib

    Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具。它广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。

2.2 深度学习训练框架

  1. Caffe

    开源的、计算CNN相关算法的深度学习框架,最初开发于加利福尼亚大学伯克利分校, 作者是贾扬清 ,使用C++编写,提供Python与Matlab接口, 兼具表达性、速度和思维模块化 。

  2. Tensorflow

    Tensorflow是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现,其前身是谷歌的神经网络算法库DistBelief 。由谷歌人工智能团队谷歌大脑开发维护,2015年起开放源代码。

  3. Pytorch

    Pytorch是一个开源的Python机器学习库,基于Torch,2017年由Facebook人工智能研究院推出,是一个简洁高效快速的框架,目前应用广泛。

  4. Paddlepaddle

    百度飞桨是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台,提供了丰富的套件适合新手上手深度学习模型,有着产业级的开源模型库。

  5. Keras

    Keras是一个由Python编写的开源人工神经网络库,主要开发者是谷歌工程师 François Cholle ,可以作为高阶应用程序接口进行深度学习模型的设计、调试、评估、应用和可视化。

2.3 深度学习部署框架

  1. OpenVINO

    OpenVINO是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和[深度学习视觉应用开发速度工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行。支持Windows与Linux系统,Python/C++语言。

  2. TensorRT

    TensorRT是英伟达开发的一款高性能深度学习推理优化器。包含深度学习推理优化器和运行环境,可为深度学习推理应用提供低延迟和高吞吐量。

  3. onnxruntime

    ONNXRuntime是微软推出的一款推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。

  4. Deepface

    DeepFace是Facebook在2014年的CVPR上提出来的,后续出现的DeepID和FaceNet也都体现DeepFace的身影,可以说DeepFace是CNN在人脸识别的奠基之作,目前深度学习在人脸识别中也取得了非常好的效果。

  5. YOLO/DarkNet

    YOLO是目标检测领域优秀的网络模型,其作者开发的Darknet是个轻量级深度学习训练框架,用c和cuda编写,支持GPU加速。

  6. mmdetection

    mmdetection是商汤和港中文大学联合开源的基于Pytorch的对象检测工具包,属于香港中文大学多媒体实验室open-mmlab项目的一部分。该工具包提供了已公开发表的多种流行的检测组件,通过这些组件的组合可以迅速搭建出各种检测框架。

  7. Paddle-detection/seg/ocr

    百度飞桨的PaddleCV为开发者提供了面向图像分类、目标检测、图像分割、文本识别等视觉场景的多种端到端开发套件和海量视觉方向模型,并被开发者广泛使用。

2.4 当前业界主流框架应用

机器视觉方向主要使用Halcon、VisionPro、Mil、OpenCV;深度学习方向通常是训练框架tensorflow、pytorch、paddlepaddle +部署框架 openvino、tensorRT、onnxruntime。主流语言是Python与C++。

3、opencv框架

opencv是一个开源的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

opencv项目1999年由英特尔公司启动,2006正式发布1.0,目前最新的是4.6版本。opencv的优势是免费开源、函数库丰富,并且便于优化与加速。

opencv的模块由基础而必不可少的Core/Imgcodecs/Video I/O、HighGUI,必需的中间层的Imgproc,还有可根据需要配置安装的机器学习、相机矫正、特征提取、视频分析等模块。官方支持c/c++/python/java/js语言,开发者也研发出C#语言的支持。opencv的特点就能加速技术的应用,包括TBB、PPL、SSE等。官方教程支持C++和Python。

opencv-Python安装

因为我之前安装过python、pycharm、opencv等,所以这部分我没有按照教程走,具体安装也可以CSDN搜索一下教程很多。我之前是在pycharm中选择好python解释器后,直接点击加号搜索下载opencv-python的包,完成环境的配置。

4、图像读取与显示

打开pycharm新建项目,配置好解释器与依赖包,输入代码然后运行,代码和结果如下图。(我的图片是从github中的opencv开源数据中下载的,放在当前文件夹下)

代码:

import cv2 as cv
import numpy as np
image = cv.imread("./apple.jpg")
cv.imshow("input",image)
cv.waitKey(0)
cv.destroyAllWindows()

结果:

实验成功。

opencv十四天入门学习——task1相关推荐

  1. opencv十四天入门学习——task2

    opencv十四天入门学习--task2 前言 1.图像色彩空间转换 1.1 人眼可见光域 1.2 常见色彩空间 1.3 图像色彩转换 2.图像对象的创建与赋值 2.1 图像对象属性 2.2 图像创建 ...

  2. 《视觉SLAM十四讲》学习笔记:第5讲相机与图像

    <视觉SLAM十四讲>学习笔记:第5讲相机与图像 前言:本学习笔记将记录<视觉SLAM十四将>中一些重要的知识点,并对书中一些比较难的知识点添加上一些笔者个人的理解,以供笔者本 ...

  3. 推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型)

    推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型) 推荐系统系列博客: 推荐系统(一)推荐系统整体概览 推荐系统(二)GBDT+LR模型 推荐系统(三)Factorization Mach ...

  4. 【小白学习PyTorch教程】十四、迁移学习:微调ResNet实现男人和女人图像分类

    「@Author:Runsen」 上次微调了Alexnet,这次微调ResNet实现男人和女人图像分类. ResNet是 Residual Networks 的缩写,是一种经典的神经网络,用作许多计算 ...

  5. pythonjam怎么运行_第二十四天 PYTHON学习

    [今日学习] 一.初识继承 1.什么是继承 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类. 子类会"& ...

  6. 机器学习(十四)Libsvm学习笔记

    Libsvm学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/46971039  作者:hjimce LIBSVM软件包是台湾大学林智仁(Ch ...

  7. torch学习 (三十四):迁移学习之微调

    文章目录 引入 1 微调 2 热狗识别 2.1 数据集载入 2.2 数据集预处理 2.3 定义和初始化模型 2.4 微调模型 致谢 引入   场景:   从图像中识别出不同种类的椅子,然后将购买链接推 ...

  8. Linux就该这么学第十四节课学习心得

    Ansible是最近几年特别火的一款开源运维自动化工具,它能够帮助运维人员肉眼可见地提高工作效率,并减少人为失误.Ansible有上千个功能丰富且实用的模块,而且有详尽的帮助信息可供查阅,因此即便是小 ...

  9. 机器学习知识点(三十四)机器学习类学习资源

    1.维基百科 1)人工智能的历史(History_of_artificial_intelligence):https://en.wikipedia.org/wiki/History_of_artifi ...

最新文章

  1. java jsp转html_JSP页面转换为HTML页面,动态转静态
  2. android位置传感器
  3. 在XMPP的JAVA开源实现Openfire中,增加LBS 附近的人功能
  4. 3.1亿美元融资之后,重估文远知行
  5. pythonista3使用教程-pythonista3中文教程
  6. javascript正则表达式总结(test|match|search|replace|split|exec)
  7. 发布可伸缩超网SCARLET,小米AutoML团队NAS三部曲杀青
  8. Android之基于xmpp openfire smack开发之openfire介绍和部署[1]
  9. linux线程间同步(1)读写锁
  10. 极大似然估计、拉普拉斯平滑定理、M-估计详解
  11. 用vue实现简单实时汇率计算功能
  12. 程序员惨遭辞退竟只因提了些代码修改意见?
  13. 基于mini2440的两种触屏中断程序(T35)
  14. python lambda函数介绍
  15. 【Linux私房菜】第四期——管理
  16. 单片微型计算机原理和应用答案,《单片微机原理及应用》 试卷A及参考答案
  17. 深空天体反差指数计算
  18. 求1000-2000年的闰年代码
  19. 小米笔记本电脑我的计算机图标不见了怎么办,毕业论文致谢结尾800字范文_本科毕业论文致谢结尾通用...
  20. 【AP】a pratical guide to robust optimization(2)

热门文章

  1. 硬核小鹏又整活了:辅助驾驶干到下半场,飞行汽车请尽快量产
  2. 【Matlab图像去噪】中值+均值+Lee+Kuan图像滤波【含源码 1179期】
  3. 在职研究生--报考条件(参考官网)
  4. Uboot27之start.S的MMU操作
  5. 前端基础学习——带你全面掌握HTML语言
  6. i12蓝牙耳机充电仓怎么看充满电_HIK真无线蓝牙耳机,平价并不差
  7. Thought works培训感悟
  8. 【专为macOS而设计的压缩软件】eZip for Mac 1.7.3
  9. python怎么求圆柱表面积半径和高由键盘输入_从键盘上输入圆的半径,计算圆的周长和面积(使用符号常量)_学小易找答案...
  10. Excel函数-带错误值的数据求和