高亮颜色说明:突出重点 个人觉得,:待核准个人观点是否有误
AI Courses by OpenCV, COMPUTER VISION I, syllabus
课程大纲
Computer Vision I - Opencv
AI Courses by OpenCV, COMPUTER VISION I, syllabus
Module 1 : Getting Started with OpenCV
1. Introduction to computer vision
? Image Processing VS Computer Vision
? Problems in Computer Vision
2. Introduction to images
? How images are formed
? Digital Image
? Image as a Matrix
? **Manipulating Pixels**
? Displaying and Saving an Image
? Display Utility Functions
? Color Image
? Image Channels
? Splitting and Merging Channels
? Manipulating Color pixels
? Images with Alpha Channel
3. Basic image operations
? How to create new images
? Cropping an image Section
? Coping a Region to another in an image
? Resizing an image
? Creating an image mask
4. Mathematical operations on images
? Datatype Conversion
? Contrast Enhancement
? Brightness Enhancement
5. Sunglass filter : A simple application
? Load Images
? Use Na?ve replacement
? Use Arithmetic Operations
6. Bitwise operations
? Different Bitwise Operations
7. Image Annotation
? Draw a line over an image
? Draw a Circle over an image
? Draw a Rectangle over an image
? Draw an Ellipse over an image
? Draw text over an image
Assignment1: Build QR code Detector
Module 2 : Video IO and GUI
1. Video IO using HighGUI
? Video I/O Jargon
? Read and Display video
? Properties of Video Capture
? How to write a video
2. Callback functions
? What are Callback functions
3. Keyboard as input device
? How to take input from Keyboard
Assignment2: Image Annotation using mouse
Assignment3: Add Trackbar as controller
Module 3 : Binary Image Processing
1. Thresholding
? What is Thresholding
? Thresholding in OpenCV
2. Erosion / Dilation
? Overview on Erosion and Dilation
? Erosion and Dilation in OpenCV
3. Opening and Closing
? Overview on Opening and Closing
? Opening and Closing on OpenCV
4. Connected Component Analysis
? What is Connected Component Analysis
? Connected Component Analysis in OpenCV
5. Contour Analysis
? What are contours
? Contour Analysis in OpenCV
6. Blob Detection
? Blob Detection in OpenCV
Assignment4: Implement different Morphological Operations
Assignment5: Coin Detection
Module 4 : Image Enhancement and Filtering
1. Color Spaces
? RGB Color Space
? HSV Color Space
? Other Color Spaces
? Application: Finding Dominant Color in an image
? Application: Desaturation Filter
2. Color Transforms
? Histogram Equalization
? Advanced Histogram Equalization(CLAHE)
? Color Adjustment using Curves
3. Image Filtering
? Introduction to Image Filtering
? What is Convolution
? Convolution in OpenCV
4. Image Smoothing
? Box Blur
? Gaussian Blur
? Median Blur
? Median Blur in OpenCV
? Bilateral Filtering
? Bilateral Blur in OpenCV
? Comparison: Median VS Bilateral
5. Image Gradients
? Introduction to Image Gradients
? First Order Derivative Filters
? **Why smoothing is important before Gradient**
? Second Order Derivative Filters
? Application: Sharpening Filter
? Canny Edge Detection
? Canny Edge Detection in OpenCV
Assignment6: Convert your images into different color spaces
Assignment7: Implement Autofocus
Module 5 : Advanced Image Processing and Computational Photography
1. Hough Transforms
? What is Hough Transform
? HoughLine: How to detect a line in an image
? HoughCircle: How to detect a circle in an image
2. High Dynamic Range Imaging
? What is High Dynamic Range Imaging
? HDR in OpenCV
3. Seamless Cloning
? What is Seamless Cloning
? Seamless Cloning in OpenCV
? Application: Face Blending
4. Image Inpainting
? What is Image Inpainting
Project1:
1.1 Create your own Instagram Filter (注:待了解)
1.2 Blemish Removal from face (注:待了解)
1.3 Chroma Keying (注:待了解)
Module 6 : Geometric Transforms and Image Features
1. Geometric Transforms
? Affine Transform
? Homography (注:待了解)
? Geometric Transforms in OpenCV
2. Image Features
? Image Feature: ORB (注:待了解)
? ORB Feature in OpenCV
3. Feature Matching
? Different Feature Matching Algorithms in OpenCV
? RANSAC (注:待了解)
4. Application: Image Alignment (注:待了解)
5. Application: Creating Panorama (注:待了解)
6. Application: Finding Known Objects using OpenCV (注:待了解)
Assignment8: Create Panorama for multiple images (注:待了解)
Assignment9: Feature Matching based Image Alignment (注:待了解)
Project3: Document Scanner
Module 7 : Image Segmentation and Recognition
1. Image segmentation using GrabCut
? Grabcut Theory (注:待了解)
? Grabcut in OpenCV
2. Introduction to AI
? Basic overview of AI
3. Image Classification
? Histogram of Oriented Gradients(HOG) (注:待了解)
? Support Vector Machine(SVM) (注:待了解)
? Eyeglass Classifier in OpenCV
4. Object Detection
? Pedestrian Detection in OpenCV
? Face Detection using HAAR Cascade (注:待了解)
? Face Detection in OpenCV
Project2: Create your own Selfie App with the following feature
1. Skin smoothing Filter
2. Sunglass Filter
Module 8 : Video Analysis
1. Motion Estimation using Optical Flow
? What is Optical Flow (注:待了解)
? Lucas-Kanade Optical Flow (注:待了解)
2. Application: Video Stabilization
3. Object Tracking
? Different Object Tracking Algorithms
4. Object Trackers in OpenCV
? Object Tracking in OpenCV
? Comparison of different trackers
5. Multiple Object Tracking using OpenCV
? How to track Multiple Objects in OpenCV
6. Kalman Filter
? Kalman Filter Tracker (注:待了解)
7. MeanShift and CamShift
? Tracking using MeanShift and CamShift (注:待了解)
Project4: Detection and Tracking of an object
Module 9 : Deep Learning with OpenCV
1. Image Classification
? Image Classification using Caffe and Tensorflow
2. Object Detection
? Single Shot Multibox Detector(SSD)
? You Only Look Once Detector(YOLO)
3. Face Detection
? SSD based Face Detector
4. Human Pose Estimation
? OpenPose (注:待了解)
相关笔记
??连通区域(Connected Component)一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域(Region, Blob)。连通区域分析(Connected Component Analysis, Connected Component Labeling)是指将图像中的各个连通区域找出并标记。 OpenCV_连通区域分析(Connected Component Analysis-Labeling)_icvpr的博客 20130901
Connected Component Analysis – Image Processing with Python Blob Detection Using OpenCV ( Python, C++ ) |
??直方图均衡化是使用图像直方图对对比度进行调整的图像处理方法。目的在于提高图像的全局对比度,使亮的地方更亮,暗的地方更暗。常被用于背景和前景都太亮或者太暗的图像,尤其是 X 光中骨骼的显示以及曝光过度或者曝光不足的图片的调整。 *** 直方图均衡 Histogram Equalization - 简书 20190305
??待理解: 为什么使用原图像像素值的累积分布函数来转换像素值, 可以实现直方图均衡化? 【图像处理算法】直方图均衡化_GQ-CSDN博客 20190326 OpenCV: Histogram Equalization
- Why smoothing is important before Gradient?
??Whether a pixel is an edge pixel or not depends upon the gray values of that pixel and its surrounding pixels. Smoothing is necessary to remove the noise when it is present in the image as well as to estimate the image surface in analogue domain. Most of the well-known edge detectors, e.g., Canny’s (which uses a Gaussian filter), use some smoothing filter for this purpose. ??R. R. Rakesh, P. Chaudhuri and C. A. Murthy, “Thresholding in edge detection: a statistical approach,” in IEEE Transactions on Image Processing, vol. 13, no. 7, pp. 927-936, July 2004, doi: 10.1109/TIP.2004.828404.
??From Numerical Recipes in C: The premise of data smoothing is that one is measuring a variable that is both slowly varying and also corrupted by random noise. Then it can sometimes be useful to replace each data point by some kind of local average of surrounding data points. Since nearby points measure very nearly the same underlying value, averaging can reduce the level of noise without (much) biasing the value obtained. Lecture 4: Smoothing by Robert Collins, CSE486, Penn State
- Advantage: smoothing reduces noise, giving us (perhaps) a more accurate intensity surface.
- Drawback: smoothing reduces fine image detail
- Important Point about Smoothing:
- Averaging attenuates noise (reduces the variance), leading to a more “accurate” estimate.
- However, the more accurate estimate is of the mean of a local pixel neighborhood! This might not be what you want.
- Balancing act: smooth enough to “clean up” the noise, but not so much as to remove important image gradients.
- Assignment7: Implement Autofocus
How the Camera Autofocus Feature Works in Digital Smartphones | by Siddhartha Edara | Medium 20180829 GitHub - dobrypd/autofocus: Elementary autofocus implementation (tested with Nikon), prove of concept of gPhoto2 library connection to OpenCV. - HoughLine: How to detect a line in an image
20210731记: 先陈述几点, 以便有助于理解霍夫线变换;
- 平面直角坐标系中, 任意两个点可以确定一条直线;
- 平面直角坐标系中, 表示一条直线需要两个参数;
- 因此, 一条直线对应于霍夫空间中的一个点, 一个点对应于霍夫空间中的一条直线;
- 若采用y=k*x+b表示, 则在平面直角坐标系中, (x,y)为变量; 在霍夫空间中, (k,b)为变量;
- 若采用rho=xcos(theta)+ycos(theta)表示, 则在平面极坐标系中, (x,y)为变量; 在霍夫空间中, (rho,theta)为变量;
- 如果霍夫空间中的m条直线相交于某一点(rho_1,theta_1), 那么这m条直线所对应原始空间中的m个点共线, 因为它们都在以(rho_1,theta_1)为参数的直线上;
??霍夫变换检测直线的原理: 通过霍夫线变换可以把原始二值图中的每一个白色像素点转换为输出灰度图中的一条直线(计算机图形学绘制直线时得到的是一个离散化采样点集). 如果我们在输出灰度图中能够观察到多条直线的交点p1, 那么在原始二值图中就能找到对应的直线l1; 而且如果交点p1的灰度值越高(亮白), 那么则表明输出灰度图中经过该交点的直线条数就越多, 位于直线l1上的白色像素点数量就越多, 直线l1就越有可能被检测出来; ??在霍夫线变换的代码实现中, 首先, 对于原始二值图中的每一个白色像素点(x,y), 遍历计算theta=0:pi:pi/180时rho的值, (这180个等距采样点即可刻画一条直线), 并给登记在输出灰度图中(int(rho),thea)位置处的数量加1, 进行累积计数; 然后, 找出输出灰度图中累积数量为局部最多的位置, 便可在原始二值图中检测出相应的直线. (四十八)通俗易懂理解——霍夫变换原理 - 梦里寻梦的文章 - 知乎 20201210 霍夫变换 - 疯狂奔跑 - 博客园 20170425
AI Courses by OpenCV, COMPUTER VISION II, syllabus
课程大纲
Computer Vision II - Opencv
AI Courses by OpenCV, COMPUTER VISION II, syllabus
Module 1 : Facial Landmark Detection
1. Different Face Processing Applications
2. Facial Landmarks Detection using dlib
? Introduction to Dlib
? Facial Landmark Detection using Dlib
3. Application - Face Alignment
4. Improving Facial Landmark Detector
? Improve in Speed
? Improve in Stability
? Landmark Stabilization in OpenCV
? Optical flow
? Lucas-Kanade Optical flow
5. Facial Landmark Detection Theory
? Machine Learning Basics
? Paper Review
6. Train a custom Facial Landmark Detector
? How to Train a Custom landmark Detector
Module 2 : Applications of Facial Landmarks
1. Alpha Blending
? Alpha Blending in OpenCV
2. Image Warping
? Affine Transform
? Geometric Transform
? Triangle Warping
3. Delaunay Triangulation
? Theory of Delaunay Triangulation
4. Face Averaging
? Face Averaging using OpenCV
5. Face Morphing
? Face Morphing using OpenCV
6. Application: Bug Eyes
? Create a Bug eye app
7. Head Pose Estimation
? Head Pose Estimation in OpenCV
Aissgnment1: Smile Detection
Module 3 : SnapChat Filters
1. Face Swap
? How Face Swapping can be achieved
? Seamless Cloning
? Seamless Cloning in OpenCV
? Face Swapping in a video
2. Application: Beard Filter
3. Application: Aging filter
4. Non-linear Deformations
? Moving Least Square
? Application: MLS based Happify and Fatify Filters
Project1: Virtual Makeup
Module 4 : Face Recognition
1. Introduction to Face Recognition
? Introduction to Face Recognition
2. Eigen Faces
3. Fisher Faces
4. Local Binary Patterns Histograms
5. Face Recognition API in OpenCV
6. Deep Learning based Face Recognition
Project2: DoppelGanger-Find Celebrity Look-Alike
Module 5 : Introduction to Deep Learning
1. Basics of Neural Networks
? What is Neural Network
? How does Neural Network Learn
2. Introduction to TensorFlow Keras(python) and LibTorch(C++)
? Deep Learning Frameworks
? The Keras Framework(Python)
? Linear Regression using Keras(Python)
? Introduction to LibTorch(C++)
3. LibTorch Installation and Usage(C++)
? How to run LibTorch code on your Local System
? How to run LibTorch code on Google Colab
? Linear Regression using LibTorch
4. Feed Forward Neural Network
? Importance of Hidden Layer in a Neural Network
? Training a Neural Network using Backpropagation
? Example: Image Classification using MLP
5. Convolutional Neural Network(CNN)
? What is CNN
? Example: Image Classification using CNN
? Data Augmentation(Python)
Assignment2: Improve CNN Training
Module 6 : Leveraging Pre-Trained Model
1. Introduction to Pre-trained model(Python)
? Pre-Trained models in Keras
2. How to get Free GPU
? Introduction to Google Colab
? Introduction to Kaggle Kernels
3. Transfer Learning and Fine Tuning in Keras(Python)
? How to use Custom Dataset in Keras
? Introduction to Kaggle Datasets
? Fine-Tuning an Image Classifier using Google Colab
? Fine-Tuning an Image Classifier using Kaggle Kernel
4. Troubleshooting using Tensorboard(Python)
? Using Tensorboard with Keras
5. From PyTorch to LibTorch(C++)
6. Fine Tuning using LibTorch(C++)
7. Fine Tuning using Caffe
? Introduction to Caffe
? Fine-Tuning in Caffe using Colab(C++)
? Inference of Trained Caffe model using OpenCV(C++)
? Train an Image Classifier using Fine-Tuning in Caffe(Python)
Module 7 : Object Detection
1. Object Detection Overview
? What is Object Detection
? Traditional Object Detection Pipeline
2. Two Stage Object Detectors
? Different two-stage Detectors
? Faster R-CNN in OpenCV(C++)
3. Single Stage Object Detectors
? SSD Object Detector in OpenCV
4. YOLO
? What is YOLO
? YOLO object Detection in OpenCV
5. Measure Performance of Object Detectors
? Evaluation Metrics for Object Detection
Module 8 : Train a Custom Object Detector using YOLO
1. Problem Description
? Which Object to Detect
? Where to get the data for Training
2. YOLO and DarkNet
? What is DarkNet
? Build DarkNet
? Run YOLO on DarkNet
3. Stepwise explanation of how train your detector on Colab
? How to link your Google Drive
? Compile DarkNet
? Download and Prepare Dataset
? How to start Training
? Run Inference on New Images
Project3: Train a Face Mask detector
Module 9 : Text Detection and Recognition
1. Overview of OCR
? What is OCR
? The OCR Pipeline
? Challenges
? Datasets and Competitions
2. Graphic Text Recognition using Tesseract
? What is Tesseract
? Introduction to OCR using Tesseract
? Tesseract OCR Failure Cases
? Improving Tesseract OCR failures
3. Text Detection
? Text Detection using EAST
? Text Detection using CRAFT(Python)
4. Modified Pipeline for scene Text Recognition using Tesseract(Python)
5. Scene Text recognition using Keras OCR(Python)
? Text Recognition using CRNN
6. Comparing Keras-OCR and Tesseract(Python)
Assignment3: OCR on invoice
Case Study: Automatic Number Plate Recognition(Python)
1. ALPR system using YOLO-Net
? YOLO-Net: License Plate Detector using YOLOv3
? ALPR using YOLO-Net and Tesseract
? ALPR using YOL-Net and YOLO-OCR
2. ALPR system using WPOD-Net
? ALPR using WPOD-Net and Tesseract
? ALPR using WPOD-Net and YOLO-OCR
Module 10 : Deploy Applications on Cloud
1. Create a Web Application using Flask
? What is Flask
? A minimal Flask Application
? Using HTML Templates
? A complete Flask Application
2. Deploy Web App on Heroku [Paas]
? What is Heroku
? How to create an account on Heroku
? Prepare Application for Deployment
? How to Deploy using Heroku CLI
? How to Deploy using Heroku website
3. Deploy Web App on Google GCP [Iaas]
? What is Google Cloud Platform(GCP)
? Create account on Google Cloud Platform
? Create and Configure a VM instance
? Setup VM and Deploy App
? Change Firewall settings and Check Deployment
Assignment4: Deploy your Web App on Heroku
相关笔记
AI Courses by OpenCV, Deep Learning with PyTorch, syllabus
课程大纲
Deep Learning with PyTorch - Opencv
在这里插入代码片
相关笔记
二级标题
??
待补充
??
待补充
??
|