opencv随笔记录:2.anaconda+windows系统下实现视频目标识别yolov3

心路历程

俗话说的好,装逼 兴趣是学习的第一生产力。安装了opencv,总得搞点事情吧。
只是进行简单的图片识别,可能还足以激起我的兴趣。在网上看到过视频识别,心想实现这个应该会有点意思。
后来搜索到了yolov3可以实现目标识别,而且是目前比较厉害的目标识别(官方是这样说的),但是官网给出的例子是 linux以及macos系统上的,我简单在windows试了下,完全不行。
我没死心,在windows上利用VMware装了ubuntu16.0.4虚拟机,确实安装好了虚拟环境,但是幺蛾子又出现了,计算速度太慢,34s计算一张图片你敢信? 后来说是利用gpu加速才可以。然鹅虚拟机怎么进行gpu加速?这是个伪命题。于是我又回到了问题的起点。。。

后来我在GitHub上找到了window上用anaconda实现的方法。但是呢,文档(<<此处是原文链接,感兴趣可以看一下)是全英的,视频是全英的(发音还一股咖喱味),而且下载源在外国,下载速度非常的感人,尤其是在下载cudn的时候。。所以我自己对原始的yml文件进行了修改,把下载源修改到了国内的清华镜源。非常快就可以下载好(大约是不修改前的 几千倍把,我认真的,一点没夸张)
因此这篇文章就是为了让你能在自己的windows电脑上快速地使用anaconda快速搭建一个yolo视频检测项目(如果一切顺利,十分钟后,你就可以拿着你识别的视频拿去装逼 玩耍了)


(之前这个blog没写完便搁置了,有一个网友询问了我一下,看来还是有市场需求的嘛,决定写完"造福"下广大c友,哈哈哈哈,如果觉得有用,关注下我呗!!!

1.创建yml文件

使用txt文档复制下面的话,然后将.txt后缀改为.yml,命名为yolo.yml

name: yolov3
channels:
  - jmcmurray
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - anaconda
  - defaults
dependencies:
  - _tflow_190_select=0.0.1=gpu
  - absl-py=0.3.0=py35_0
  - alabaster=0.7.11=py35_0
  - asn1crypto=0.24.0=py35_0
  - astor=0.7.1=py35_0
  - astroid=2.0.2=py35_0
  - babel=2.6.0=py35_0
  - backcall=0.1.0=py35_0
  - backports=1.0=py35he88aa47_1
  - backports.weakref=1.0.post1=py35hf13df52_0
  - blas=1.0=mkl
  - bleach=2.1.3=py35_0
  - ca-certificates=2018.03.07=0
  - certifi=2018.8.24=py35_1
  - cffi=1.11.5=py35h945400d_0
  - chardet=3.0.4=py35_1
  - cloudpickle=0.5.3=py35_0
  - colorama=0.3.9=py35h32a752f_0
  - cryptography=2.3=py35h74b6da3_0
  - cryptography-vectors=2.3=py35_0
  - cudatoolkit=9.0=1
  - cudnn=7.1.4=cuda9.0_0
  - cython=0.28.5=py35h6538335_0
  - decorator=4.3.0=py35_0
  - docutils=0.14=py35h8ccb97f_0
  - entrypoints=0.2.3=py35hb91ced9_2
  - gast=0.2.0=py35_0
  - git=2.18.0=h6bb4b03_0
  - grpcio=1.12.1=py35h1a1b453_0
  - html5lib=1.0.1=py35h047fa9f_0
  - icc_rt=2017.0.4=h97af966_0
  - icu=58.2=ha66f8fd_1
  - idna=2.7=py35_0
  - imageio=2.3.0=py35_0
  - imagesize=1.0.0=py35_0
  - intel-openmp=2018.0.3=0
  - ipykernel=4.8.2=py35_0
  - ipython=6.5.0=py35_0
  - ipython_genutils=0.2.0=py35ha709e79_0
  - isort=4.3.4=py35_0
  - jedi=0.12.1=py35_0
  - jinja2=2.10=py35_0
  - jpeg=9b=hb83a4c4_2
  - jsonschema=2.6.0=py35h27d56d3_0
  - jupyter_client=5.2.3=py35_0
  - jupyter_core=4.4.0=py35h629ba7f_0
  - keyring=13.2.1=py35_0
  - lazy-object-proxy=1.3.1=py35he996729_0
  - libpng=1.6.34=h79bbb47_0
  - libprotobuf=3.5.2=he0781b1_0
  - libsodium=1.0.16=h9d3ae62_0
  - libtiff=4.0.9=hb8ad9f9_1
  - make=3.82=0
  - markdown=2.6.11=py35_0
  - markupsafe=1.0=py35hc253e08_1
  - mccabe=0.6.1=py35_1
  - mistune=0.8.3=py35hfa6e2cd_1
  - mkl=2018.0.3=1
  - mkl_fft=1.0.4=py35h1e22a9b_1
  - mkl_random=1.0.1=py35h9258bd6_0
  - nbconvert=5.3.1=py35h98d6c46_0
  - nbformat=4.4.0=py35h908c9d9_0
  - numpy=1.15.0=py35h9fa60d3_0
  - numpy-base=1.15.0=py35h4a99626_0
  - numpydoc=0.8.0=py35_0
  - olefile=0.45.1=py35_0
  - openssl=1.0.2p=hfa6e2cd_0
  - packaging=17.1=py35_0
  - pandas=0.23.4=py35h830ac7b_0
  - pandoc=2.2.1=h1a437c5_0
  - pandocfilters=1.4.2=py35h978f723_1
  - parso=0.3.1=py35_0
  - path.py=11.0.1=py35_0
  - pickleshare=0.7.4=py35h2f9f535_0
  - pip=10.0.1=py35_0
  - prompt_toolkit=1.0.15=py35h89c7cb4_0
  - protobuf=3.5.2=py35h6538335_1
  - psutil=5.4.6=py35hfa6e2cd_0
  - pycodestyle=2.4.0=py35_0
  - pycparser=2.18=py35h15a15da_1
  - pyflakes=2.0.0=py35_0
  - pygments=2.2.0=py35h24c0941_0
  - pylint=2.1.1=py35_0
  - pyopenssl=18.0.0=py35_0
  - pyparsing=2.2.0=py35hcabcaab_1
  - pyqt=5.9.2=py35h6538335_2
  - pyreadline=2.1=py35_0
  - pysocks=1.6.8=py35_0
  - python=3.5.5=h0c2934d_2
  - python-dateutil=2.7.3=py35_0
  - pytz=2018.5=py35_0
  - pywin32=223=py35hfa6e2cd_1
  - pyzmq=17.1.0=py35hfa6e2cd_0
  - qtawesome=0.4.4=py35h639d0ff_0
  - qtconsole=4.3.1=py35hc47b0dd_0
  - qtpy=1.4.2=py35_1
  - requests=2.19.1=py35_0
  - rope=0.10.7=py35_0
  - scipy=1.1.0=py35hc28095f_0
  - selenium=3.14.0=py35hfa6e2cd_0
  - setuptools=40.0.0=py35_0
  - simplegeneric=0.8.1=py35_2
  - singledispatch=3.4.0.3=py35h33f66b4_0
  - sip=4.19.8=py35h6538335_0
  - six=1.11.0=py35_1
  - snowballstemmer=1.2.1=py35h4c55bfa_0
  - sphinx=1.7.6=py35_0
  - sphinxcontrib=1.0=py35h45f5ca3_1
  - sphinxcontrib-websupport=1.1.0=py35_1
  - spyder=3.3.0=py35_0
  - spyder-kernels=0.2.4=py35_0
  - sqlite=3.24.0=h7602738_0
  - tensorboard=1.9.0=py35he025d50_0
  - tensorflow=1.9.0=gpu_py35h0075c17_1
  - tensorflow-base=1.9.0=gpu_py35h6e53903_0
  - tensorflow-gpu=1.9.0=hf154084_0
  - termcolor=1.1.0=py35_1
  - testpath=0.3.1=py35h06cf69e_0
  - tk=8.6.7=hcb92d03_3
  - tornado=5.1=py35hfa6e2cd_0
  - traitlets=4.3.2=py35h09b975b_0
  - typed-ast=1.1.0=py35hfa6e2cd_0
  - typing=3.6.4=py35_0
  - urllib3=1.23=py35_0
  - vc=14.1=h0510ff6_3
  - vs2015_runtime=15.5.2=3
  - wcwidth=0.1.7=py35h6e80d8a_0
  - webencodings=0.5.1=py35h5d527fb_1
  - werkzeug=0.14.1=py35_0
  - wheel=0.31.1=py35_0
  - win_inet_pton=1.0.1=py35hbef1270_1
  - win_unicode_console=0.5=py35h56988b5_0
  - wincertstore=0.2=py35hfebbdb8_0
  - wrapt=1.10.11=py35h54666f7_0
  - zeromq=4.2.5=he025d50_1
  - zlib=1.2.11=h8395fce_2
  - cycler=0.10.0=py_1
  - ffmpeg=3.2.4=1
  - freetype=2.8.1=ha63716d_1
  - glew=2.0.0=h2fa13f4_0
  - h5py=2.8.0=py35hb24199d_1
  - hdf5=1.10.2=he51fdeb_2
  - keras=2.2.2=py35_0
  - keras-applications=1.0.4=py_1
  - keras-preprocessing=1.0.2=py_1
  - kivy=1.10.1=py35h47ee06f_1
  - kiwisolver=1.0.1=py35he980bc4_2
  - libgpuarray=0.7.6=hfa6e2cd_1003
  - mako=1.0.7=py_1
  - pillow=5.2.0=py35_0
  - pygpu=0.7.6=py35_0
  - pyyaml=3.13=py35hfa6e2cd_1
  - requests_download=0.1.2=py_1
  - sdl2=2.0.8=1
  - sdl2_image=2.0.2=0
  - sdl2_mixer=2.0.1=h6538335_1
  - sdl2_ttf=2.0.14=h8909db8_1
  - smpeg2=2.0.0=h6538335_1
  - theano=1.0.2=py35_0
  - yaml=0.1.7=hfa6e2cd_1001
  - matplotlib=2.2.2=py35h153e9ff_1
  - qt=5.9.6=vc14h62aca36_0
  - json=0.1.1=0
  - qutil=3.2.1=6
  - opencv3=3.1.0=py35_0
  - pytorch=0.4.1=py35_cuda90_cudnn7he774522_1
  - pip:
    - torch==0.4.1
prefix: C:\Users\Ritesh\Anaconda3.1\envs\yolov3

2.构建yolo虚拟环境

将yolo.yml放在你想放的位置,然后使用anaconda prompt cd到yolo.yml所在文件夹
比如我放在的是E盘的pythonlearning\yolo 文件夹
opencv随笔记录:2.anaconda+windows系统下实现视频目标识别yolov3_第1张图片

1)构建基本环境

conda env create -f yolo.yml

2)下载repo

git clone https://github.com/ayooshkathuria/pytorch-yolo-v3.git

如果显示没有git命令 ,conda install git 就好

3)下载weights

下载地址在这里:https://pjreddie.com/media/files/yolov3.weights

3.运行下栗子

1)进入git clone 后的那个文件夹

2) 在anaconda prompt 中运行例子

识别MP4文件

python video_demo.py --video video.mp4

识别摄像头

python cam_demo.py

如果仍有问题,欢迎联系我:qq号1185753125

你可能感兴趣的:(opencv,opencv,图像识别,视频识别,python,yolo)