画像処理ライブラリ opencv で 出来ること・出来ないこと
TRANSCRIPT
PowerPoint
OpenCV http://fukushima.web.nitech.ac.jp/I-62016/10/14Design Solution Forum 2016
2004 2009 2009 2015 http://fukushima.web.nitech.ac.jp/QiitaOpenCV Advent Calendar 2015OpenCV.jp
2
3ARVR
3
OpenCVJava, PythonAndroidiOSOpenCV4
5
10M500K+Open Computer Vision (OpenCV)6
C++PythonJavaMatlabCC#, Go, Processing, Lua, Ruby, PHP, Haskell, etchttps://github.com/atinfinity/lab/wiki/OpenCV-binding%E3%81%BE%E3%81%A8%E3%82%81
7
WindowsLinuxMac OSFreeBSDAndroidiOSARM Linux
8
OpenCV9
19992015200020012002200320042005200620072008200920102011201220132014OpenCV StartedAlpha Release at CVPR 2000. Windows only.Beta 1. Linux support Release 1.0 Release 1.1 Release 2.0. C++ Release 2.1. Full Python support Release 2.4 LTSRelease 2.2. Android SupportRelease 3.0 RefactoredWillow SupportOpenCV FoundationIntel SupportGoogle Summer of CodeNvidia SupportRenewed Intel SupportRelease 2.3. GPU Support. ModulesMagic LeapDevelopment team has moved to Itseez
1997 IntelProcessing Library (IPL)2000 OpenCV alpha20012005 OpenCV beta2006 OpenCV 1.02008 Willow Garage OpenCV 1.1pre2009 OpenCV 2.02015 ItseezOpenCV 3.0OpenCV3.12016 IntelItseezOpenCV 3.12015-12-21
OpenCV10
OpenCVContribOpenCVContrib11
OpenCV 2.xOpenCV 3.x contributions
OpenCV 3.x
SIMDCUDAGPUOpenCLGPU
12
CPUIPP-ICV OpenCV3.0HALUniversal IntrinsicsNEONSSEParallel_for_GPUCUDANVIDIA OpenCLTransparent API (T-API)UMatGPU,CPUexeOpenCL
13
IntelIntel Performance Primitive (IPP) OpenCVFFTIPP-ICV14
CPUT-API15
CPU - AMD A10-6800k, iGPU - HD8670D, dGPU - Radeon HD7790
MatUmatOpenCLGPUMatgpuMatCUDANVidiaMatUMatgpuMat16
OpenCLiOSAndriod, Windows PhoneFullHDOpenCLFarneback480pOpenCLCPUOpenCLUMat17
RGBRGBBGROpenCVIntelProcessing Library1997BGRWindowsBGROpenCVcvtColor(src, dest, COLOR_BGR2YUV)RGBBGROpenCVBGR18
19
(core) (imgproc) (imgcodecs) (videoio)GUI (highgui)3 (viz) (shape) (video) (calib3d)HDR (photo)
(stitching) (videostab) (superres) (ml) (features2d) (objectdetect) (flann)CUDA(cudaarithm, cudabgsegm, cudacodec, cudafeatures2d, cudafilters, cudaimgproc, cudalegacy, cudaobjdetect, cudaoptflow, cudastereo, cudawarping, cudev)
OpenCV 3.x20
AR (aruco) (bgsegm) (bioinspired) (ccalib) (cvv)(datasets) (dnn) (dpm) (face) (fuzzy)Hdf5 (hdf) (line_descriptor)Matlab (matlab) (optflow) (plot) (reg)RGB+ (rgbd) (saliency) (sfm) (stereo) (structured_light)3 (surface_matching) (text) (tracking) (xfeatures2d) (ximgproc) (xobjdetect)(xphoto)
OpenCV Contrib.21
BMPPPMPGMPBMJPEGJPEG2000PNGTIFFOpenEXRWebP
(imgcodecs)22IO
USBIOKinectCREATIVESENZ3DIOMPEG1,2,4,H.264, H.265, (videoio)23
imshowQtGUI (highgui)24
With Qt
(imgproc)25
ANN (SVM) (EM) (DTrees) (Boost) (RTrees)K (KNearest) (LogisticRegression) (NormalBayesClassifier)
(ml)26
(shape)27
~0.5~157
(calib3d)28 (calib3d)
(calib3d)29
OpenCVvtk
3 (viz)30
photo31
photo32High Dynamic Range Imaging (HDRI)
ArUco: a minimal library for Augmented Reality applications based on OpenCVOpenCVAR
AR (aruco)33
https://www.youtube.com/watch?v=CzD48UkGsK8
Htesseract-ocr
(text)34
CaffeTorchIOOpenCVdnn (dnn)35
SIFTSURFcontrib
(xfeatures2d)36
QtopenGLOpenCV3 (cvv)37
1D/2D
OpenCPhttps://github.com/norishigefukushima/OpenCPPythonmatplotlibC++matplotlib-cpphttps://github.com/lava/matplotlib-cpp (plot)38
OpenCVSVDfloatfloatPCAfloatfloatPython
39
OpenCVMatlab, PythonC++40
CoreAlgorithm3.0HALContribGoogle Summer Code
41
Matlab
OpenCVC++PythonOKMatlab vs OpenCV42
OpenCV43
MatMatOpenCVEIGENGithubC++
44
MatlabFFTWFFTEigen#define EIGEN_NO_DEBUGIntel MKLIntel IPP45
DlibVLfeatImage Processing Onlinehttp://www.ipol.im/46
OpenCV parallel_for_AutoBufferuniversal intrinsics
47*PythonPythonCVfor*
OSGCD (OSX, iOS), OpenMP, Pthreads (new in 3.0), TBB, Concurrency (Windows, WinRT), C=cv::Mutex map-reduce
parallel_for_48
Malloc100alloca
alloca + malloc = AutoBuffer49using namespace cv;
void foo(){AutoBuffer buf;buf.allocate(n); // allocate buffer for n floats on stack or, if n is big, on the heapfloat* bufptr = buf;} // buf is invalid at this pointAutoBuffer buf(n); // allocate on stack if n