← 开源
mbeyeler

opencv-machine-learning

M. Beyeler (2017). Machine Learning for OpenCV: Intelligent image processing with Python. Packt Publishing Ltd., ISBN 978-178398028-4.

TutorialsML/AI fundamentalsJupyter Notebook
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
822
Star
442
Fork
+0
本周
3
贡献者
创建于 2017-02-17 · 更新于 2026-10-06 · 今日第 13467 名
主要开发者
mbeyelerlbcostaSarthakSuri

mbeyeler/opencv-machine-learning 排名第 13,467,有 822 个星标。

同类别比较

mbeyeler/opencv-machine-learning 排名第 13,467,此处有 8 个同类条目;dave1010/tree-of-thought-prompting 排名第 13,483。

同类别比较
名称排名指标
EvilPort2/Sign-Language13,422
星标数:
826
分叉数:
357
简介:
A very simple CNN project to recognize gestures made in American Sign Language
NVIDIA/TileGym13,423
语言:
Python
星标数:
826
分叉数:
92
简介:
Helpful kernel tutorials, examples and SKILLs for tile-based GPU programming
wenxinxu/resnet-in-tensorflow13,440
语言:
Python
星标数:
825
分叉数:
274
简介:
Re-implement Kaiming He's deep residual networks in tensorflow. Can be trained with cifar10.
LambdaLabsML/examples13,442
语言:
Jupyter Notebook
星标数:
824
分叉数:
105
简介:
Deep Learning Examples
dave1010/tree-of-thought-prompting13,483
星标数:
820
分叉数:
76
简介:
Using Tree-of-Thought Prompting to boost ChatGPT's reasoning
haofanwang/Lora-for-Diffusers13,485
语言:
Python
星标数:
820
分叉数:
50
简介:
The most easy-to-understand tutorial for using LoRA (Low-Rank Adaptation) within diffusers framework for AI Generation Researchers🔥
AviSoori1x/makeMoE13,489
语言:
Jupyter Notebook
星标数:
819
分叉数:
96
简介:
From scratch implementation of a sparse mixture of experts language model inspired by Andrej Karpathy's makemore :)
QuantConnect/Research13,490
语言:
Jupyter Notebook
星标数:
819
分叉数:
201
简介:
Open sourced research notebooks by the QuantConnect team.
关键参数与规格
关键参数与规格
参数值
语言Jupyter Notebook
类别Tutorials
子类别ML/AI fundamentals
星标数822
分叉数442
贡献者3
创建日期2017-02-17
更新日期2026-10-06
1 天星标数0
7 天星标数0
排名13,467
上次排名13,359
排名变化-108
7 天星标排名13,951
上次 7 天星标排名13,974
7 天星标排名变化23
总星标排名13,040
上次总星标排名13,017
总星标排名变化-23
国家USA
README 摘录

Machine Learning for OpenCV This is the Jupyter notebook version of the following book: Michael Beyeler Machine Learning for OpenCV Intelligent Image Processing with Python 14 July 2017 Packt Publishing Ltd. , London, England Paperback: 382 pages ISBN 978-178398028-4 The content is available on GitHub. The code is released under the MIT license. A second edition has now been released (using OpenCV4). The book is also available as a Udemy course. If you use either book or code in

a scholarly publication, please cite as: M. , London, England, 380 pages, ISBN 978-178398028-4. Or use the following bibtex: The book has been referenced more than 45 times in scholarly work (source: Google Scholar). Citing studies include: VS Padilla, RA Ponguillo, AA Abad, LE Salas (2020). Cyber-physical system based on image recognition to improve traffic flow: A case study. *International Journal of Electrical and Computer Engineering (IJECE)* O Balitskii, V Kolesnikov (2019). Identification of wear products in the

automotive tribotechnical system using computer vision methods, artificial intelligence and big data. *XIth International Scientific and Practical Conference on Electronics and Information Technologies (ELIT)* S Lynch (2018). *Dynamical Systems with Applications using Python*, Springer. Inductive Machine Learning with Image Processing for Objects Detection of a Robotic Arm with Raspberry PI. *International Conference on Technology Trends*. Table of Contents Preface Foreword by Ariel Rokem 1. Working with Data in OpenCV Dealing with Data Using Python's NumPy Package Loading External Datasets in

Python Visualizing Data Using Matplotlib Dealing with Data Using OpenCV's TrainData container 3. First Steps in Supervised Learning Measuring Model Performance with Scoring Functions Understanding the k-NN Algorithm Using Regression Models to Predict Continuous Outcomes Applying Lasso and Ridge Regression Classifying Iris Species Using Logistic Regression 4. Representing Data and Engineering Features Preprocessing Data Reducing the Dimensionality of the Data Representing Categorical Variables Representing Text Features Representing Images 5. Using Decision Trees to Make a Medical Diagnosis Building Our

First Decision Tree Using Decision Trees to Diagnose Breast Cancer Using Decision Trees for Regression 6. Detecting Pedestrians with Support Vector Machines Implementing Your First Support Vector Machine Detecting Pedestrians in the Wild Additional SVM Exercises 7. Implementing a Spam Filter with Bayesian Learning Implementing Our First Bayesian Classifier Classifying E-Mails Using Naive Bayes 8. Discovering Hidden Structures with Unsupervised Learning Understanding k-Means Clustering Compressing Color Images Using k-Means Classifying Handwritten Digits Using k-Means Implementing Agglomerative

Hierarchical Clustering 9. Using Deep Learning to Classify Handwritten Digits Understanding Perceptrons Implementing a Multi-Layer Perceptron in OpenCV Getting Acquainted with Deep Learning Training an MLP in OpenCV to Classify Handwritten Digits Training a Deep Neural Net to Classify Handwritten Digits Using Keras 10. Combining Different Algorithms Into an Ensemble 11. Selecting the Right Model with Hyper-Parameter Tuning 12. Wrapping Up Running the Code There are at least two ways you can run the code: **deprecated** Using Binder

(no installation required). Using Jupyter Notebook on your local machine. The code in this book was tested with Python 3.

常见问题

记录了多少星标和分叉?

mbeyeler/opencv-machine-learning 有 822 个星标和 442 个分叉。

仓库排名是多少?

mbeyeler/opencv-machine-learning 排名第 13,467。

记录的语言和类别是什么?

mbeyeler/opencv-machine-learning 有 822 个星标,语言为 Jupyter Notebook,类别为 Tutorials。

哪个仓库排名最接近?

mbeyeler/opencv-machine-learning 与 dave1010/tree-of-thought-prompting 比较,后者排名第 13,483,有 820 个星标。

README

Machine Learning for OpenCV

This is the Jupyter notebook version of the following book:

Michael Beyeler

Machine Learning for OpenCV

Intelligent Image Processing with Python

14 July 2017

Packt Publishing Ltd., London, England

Paperback: 382 pages

ISBN 978-178398028-4

The content is available on GitHub. The code is released under the MIT license.

A second edition has now been released (using OpenCV4). The book is also available as a Udemy course.

If you use either book or code in a scholarly publication, please cite as:

M. Beyeler, (2017). Machine Learning for OpenCV. Packt Publishing Ltd., London, England, 380 pages, ISBN 978-178398028-4.

Or use the following bibtex:

@book{MachineLearningOpenCV,
	title = {{Machine Learning for OpenCV}},
	subtitle = {{Intelligent image processing with Python}},
	author = {Michael Beyeler},
	year = {2017},
	pages = {380},
	publisher = {Packt Publishing Ltd.},
	isbn = {978-178398028-4}
}

The book has been referenced more than 45 times in scholarly work (source: Google Scholar). Citing studies include:

  • VS Padilla, RA Ponguillo, AA Abad, LE Salas (2020). Cyber-physical system based on image recognition to improve traffic flow: A case study. International Journal of Electrical and Computer Engineering (IJECE)
  • O Balitskii, V Kolesnikov (2019). Identification of wear products in the automotive tribotechnical system using computer vision methods, artificial intelligence and big data. XIth International Scientific and Practical Conference on Electronics and Information Technologies (ELIT)
  • S Lynch (2018). Image Processing with Python. Dynamical Systems with Applications using Python, Springer.
  • MQG Quiroz (2018). Inductive Machine Learning with Image Processing for Objects Detection of a Robotic Arm with Raspberry PI. International Conference on Technology Trends.

Table of Contents

Preface

Foreword by Ariel Rokem

  1. A Taste of Machine Learning

  2. Working with Data in OpenCV

  3. First Steps in Supervised Learning

  4. Representing Data and Engineering Features

  5. Using Decision Trees to Make a Medical Diagnosis

  6. Detecting Pedestrians with Support Vector Machines

  7. Implementing a Spam Filter with Bayesian Learning

  8. Discovering Hidden Structures with Unsupervised Learning

  9. Using Deep Learning to Classify Handwritten Digits

  10. Combining Different Algorithms Into an Ensemble

  11. Selecting the Right Model with Hyper-Parameter Tuning

  12. Wrapping Up

Running the Code

There are at least two ways you can run the code:

  • deprecated Using Binder (no installation required).
  • Using Jupyter Notebook on your local machine.

The code in this book was tested with Python 3.5, although Python 3.6 and 2.7 should work as well.

Using Binder

Binder allows you to run Jupyter notebooks in an interactive Docker container. No installation required!

Launch the project: mbeyeler/opencv-machine-learning

Using Jupyter Notebook

You basically want to follow the installation instructions in Chapter 1 of the book.

In short:

  1. Download and install Python Anaconda. On Unix, when asked if the Anaconda path should be added to your PATH variable, choose yes. Then either open a new terminal or run $ source ~/.bashrc.

  2. Fork and clone the GitHub repo:

    • Click the Fork button in the top-right corner of this page.
    • Clone the repo, where YourUsername is your actual GitHub user name:
    $ git clone https://github.com/YourUsername/opencv-machine-learning
    $ cd opencv-machine-learning
    
    • Add the following to your remotes:
    $ git remote add upstream https://github.com/mbeyeler/opencv-machine-learning
    
  3. Add Conda-Forge to your trusted channels (to simplify installation of OpenCV on Windows platforms):

    $ conda config --add channels conda-forge
    
  4. Create a conda environment for Python 3 with all required packages:

    $ conda create -n Python3 python=3.6 --file requirements.txt
    
  5. Activate the conda environment. On Linux / Mac OS X:

    $ source activate Python3
    

    On Windows:

    $ activate Python3
    

    You can learn more about conda environments in the Managing Environments section of the conda documentation.

  6. Launch Jupyter notebook:

    $ jupyter notebook
    

    This will open up a browser window in your current directory. Navigate to the folder opencv-machine-learning. The README file has a table of contents. Else navigate to the notebooks folder, click on the notebook of your choice, and select Kernel > Restart & Run All from the top menu.

Getting the latest code

If you followed the instructions above and:

  • forked the repo,
  • cloned the repo,
  • added the upstream remote repository,

then you can always grab the latest changes by running a git pull:

$ cd opencv-machine-learning
$ git pull upstream master

Errata

The following errata have been reported that apply to the print version of the book. Some of these are typos, others are bugs in the code. Please note that all known bugs have been fixed in the code of this repository.

  • p.32: Out[15] should read '3' instead of 'int_arr[3]'.
  • p.32: Out[22] should read array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) instead of array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]).
  • p.33: In the sentence: "Here, the first dimension defines the color channel...", the order of color channels should read "blue, green, and red in OpenCV" instead of "red, green, blue, green, and red".
  • p.36: The range of x values should read "0 <= x <= 10" instead of "0 <= x < 10", since np.linspace by default includes the endpoint.
  • p.51: In [15] shoud read precision = true_positive / (true_positive + false_positive) instead of precision = true_positive / (true_positive + true_negative).
  • p.51: Out[15] should read 0.2 instead of 1.0.
  • p.72: In [6] should read ridgereg = linear_model.Ridge() instead of ridgereg = linear_model.RidgeRegression().
  • p.85: The first line of In [8] should read min_max_scaler = preprocessing.MinMaxScaler(feature_range=(-10,10)) instead of min_max_scaler = preprocessing.MinMaxScaler(feature_range (-10,10)).
  • p.91: The last paragraph should read We also specify an empty array, np.array([]), for the mean argument, which tells OpenCV to compute the mean from the data: instead of We also specify an empty array, np.array([]), for the mask argument, which tells OpenCV to use all data points in the feature matrix:.
  • p.112: In [3] should read vec.get_feature_names()[:5] instead of function:vec.get_feature_names()[:5].
  • p.120: In [16] should read dtree = cv2.ml.DTrees_create() instead of dtree = cv2.ml.dtree_create().
  • p.122: In [26] should read with open("tree.dot", 'w'): f = tree.export_graphviz(dtc, out_file=f, feature_names=vec.get_feature_names(), class_names=['A', 'B', 'C', 'D']) instead of with open("tree.dot", 'w'): f = tree.export_graphviz(clf, out_file=f). Also, the second line should be indented.
  • p.147: The first occurrences of X_hypo = np.c_[xx.ravel().astype(np.float32), yy.ravel().astype(np.float32)] and _, zz = svm.predict(X_hypo) should be removed, as they mistakenly appear twice.
  • p.193: In [28] is missing from sklearn import metrics.
  • p.197: The sentence right below In [3] should read "Then we can pass the preceding data matrix (X) to cv2.kmeans", not cv2.means.
  • p.201: Indentation in bullet points 2-4 are wrong. Please refer to the Jupyter notebook for the correct indentation.
  • p.228: The last sentence in the middle paragraph should read "[...] thus hopefully classifying the sample as y_{hat}=+1" instead of "[...] thus hopefully classifying the sample as y_{hat}=-1".
  • p.230: In [2] has wrong indentation: class Perceptron(object) correctly has indentation level 1, but def __init__ should have indentation level 2, and the two commands self.lr = lr; self.n_iter = n_iter should have indentation level 3.
  • p.260: In [5] should read from keras.models import Sequential instead of from keras.model import Sequential.
  • p.260: In [6] should read model.add(Conv2D(n_filters, (kernel_size[0], kernel_size[1]), padding='valid', input_shape=input_shape)) instead of model.add(Convolution2D(n_filters, kernel_size[0], kernel_size[1], border_mode='valid', input_shape=input_shape)).
  • p.260: In [8] should read model.add(Conv2D(n_filters, (kernel_size[0], kernel_size[1]))) instead of model.add(Convolution2D(n_filters, (kernel_size[0], kernel_size[1]))).
  • p.261: In [12] should read model.fit(X_train, Y_train, batch_size=128, epochs=12, verbose=1, validation_data=(X_test, Y_test)) instead of model.fit(X_train, Y_train, batch_size=128, nb_epoch=12, verbose=1, validation_data=(X_test, Y_test)).
  • p.275, in bullet point 2 it should say ret = classifier.predict(X_hypo) instead of zz = classifier.predict(X_hypo); zz = zz.reshape(xx.shape).
  • p.285: plt.imshow(X[i, :].reshape((64, 64)), cmap='gray') should be indented so that it is aligned with the previous line.
  • p.288: In [14] should read _, y_hat = rtree.predict(X_test) instead of _, y_hat = tree.predict(X_test).
  • p.305: The first paragraph should read "...and the remaining folds (1, 2, and 4) for training" instead of "...and the remaining folds (1, 2, and 4) for testing".
  • p.306: In [2] should read from sklearn.model_selection import train_test_split instead of from sklearn.model_selection import model_selection.
  • p.310: In [18] should read knn.train(X_boot, cv2.ml.ROW_SAMPLE, y_boot) instead of knn.train(X_train, cv2.ml.ROW_SAMPLE, y_boot).
  • p.311: In [20] should have a line model.train(X_boot, cv2.ml.ROW_SAMPLE, y_boot) instead of knn.train(X_boot, cv2.ml.ROW_SAMPLE, y_boot), as well as _, y_hat = model.predict(X_oob) instead of _, y_hat = knn.predict(X_oob).
  • p.328: In [5] is missing the statement from sklearn.preprocessing import MinMaxScaler.
  • p.328: In [5] should have a line pipe = Pipeline([("scaler", MinMaxScaler()), ("svm", SVC())]) instead of pipe = Pipeline(["scaler", MinMaxScaler(), ("svm", SVC())]).

Acknowledgment

This book was inspired in many ways by the following authors and their corresponding publications:

These books all come with their own open-source code - check them out when you get a chance!

排名相邻
同类项目