General principles and tricks for writing fast MATLAB code.
Powerpoint slides: https://uofi.box.com/shared/static/yg4ry6s1c9qamsvk6sk7cdbzbmn2z7b8.pptx
seccomp is a computer security facility in the Linux kernel, pledge is a similar security facility in the OpenBSD kernel. In this presentation Giovanni Bechis will review the development story and progress of both kernel interfaces and will analyze the main differences. There will be some examples of implementations of security patches made for some important open source projects.
This document discusses sources of error in finite element analysis, including modeling errors due to simplifying assumptions, discretization errors from approximating solutions, and numerical errors from limited computer precision. It provides examples of common mistakes that can cause incorrect results, such as incorrect material properties or insufficient boundary constraints. It also discusses best practices for verifying models, such as element testing, mesh refinement studies, and checking results against analytical solutions or boundary conditions.
Python 101: Python for Absolute Beginners (PyTexas 2014)Paige Bailey
If you're absolutely new to Python, and to programming in general, this is the place to start!
Here's the breakdown: by the end of this workshop, you'll have Python downloaded onto your personal machine; have a general idea of what Python can help you do; be pointed in the direction of some excellent practice materials; and have a basic understanding of the syntax of the language.
Please don't forget to bring your laptop!
Audience: "Python 101" is geared toward individuals who are new to programming. If you've had some programming experience (shell scripting, MATLAB, Ruby, etc.), then you'll probably want to check out the more intermediate workshop, "Python 101++".
Kdump and the kernel crash dump analysisBuland Singh
Kdump is a kernel crash dumping mechanism that uses kexec to load a separate crash kernel to capture a kernel memory dump (vmcore file) when the primary kernel crashes. It can be configured to dump the vmcore file to local storage or over the network. Testing involves triggering a kernel panic using SysRq keys which causes the crash kernel to load and dump diagnostic information to the configured target path for analysis.
Investigation on ext4 filesystem of current Linux
This slide focuses on ext4 disk layout.
Ext4 filesystem(2)
http://www.slideshare.net/YoshihiroYunomae/ext4-filesystem2
NumPy provides two fundamental objects for multi-dimensional arrays: the N-dimensional array object (ndarray) and the universal function object (ufunc). An ndarray is a homogeneous collection of items indexed using N integers. The shape and data type define an ndarray. NumPy arrays have a dtype attribute that returns the data type layout. Arrays can be created using the array() function and have various dimensions like 0D, 1D, 2D and 3D.
MindMap - Forensics Windows Registry Cheat SheetJuan F. Padilla
This document summarizes information about the Windows Registry including its structure, tools used to access it, locations of hive files, and types of evidence that can be extracted including search history, recent documents, dialog boxes used, commands executed, and software/OS versions. It explains registry hives like HKEY_LOCAL_MACHINE, keys with MRU lists that track recently used items, and how timestamps and MRU lists can help determine the order and time of user activity on a system.
The document provides an overview of Unit 1 of a Python programming course taught by Dr. C. Sreedhar. Unit 1 covers introduction to Python including its history, installation, execution, commenting, data types, operators, and writing simple programs. It discusses Python's character set, tokens, core data types, I/O functions, assigning values to variables, and multiple assignments. Operators and expressions such as arithmetic, comparison, logical, and bitwise operators are also covered. Examples of simple Python programs are provided.
This document discusses list comprehensions in Python. It provides examples of using list comprehensions to generate lists based on conditions. It describes generating a list of squares of numbers from 1 to 20 and generating a list of letters from a dictionary whose values are greater than or equal to 3. It then discusses using list comprehensions to solve practice problems involving loading height data from a file, summarizing statistics, looking up heights, finding people above a certain height, and printing a report of heights.
This document discusses an introduction to Python training provided by DataFlair. It covers what Python is as an interpreted, high-level and general-purpose programming language. It discusses the history of Python from its conception in 1980 to the end of life for Python 2.7 in 2020. It also outlines some of Python's key features and components like functions, modules, packages and classes. Finally, it discusses frameworks and flavors of Python like Django, Flask and Jython as well as uses of Python for tasks like website building, data analysis and machine learning.
Q1 Memory Fabric Forum: Memory expansion with CXL-Ready Systems and DevicesMemory Fabric Forum
Ravi Gummaluri, Director, CXL System Architecture at Micron describes use cases for memory expansion with tiered DRAM and CXL memory, along with performance data.
Transient three dimensional cfd modelling of ceilng fanLahiru Dilshan
Ceiling fans are used to get thermal comfort, especially in tropical countries. With the increment of the usage of air conditioners, the emission of CO2 is increased. But ceiling fans are a limited solution, that saves much energy compared to air conditioners. Ceiling fans generate a non-uniform velocity profile, so that, there is a non-uniform thermal environment. That non-uniform environment does not imply lower thermal comfort, that will give enough thermal comfort with low energy cost by air velocity. Hence, there will be difficulties of analysing with simple modelling techniques in that environment. So, to predict the performance of the ceiling fan required more accurate models.
The accurate model of a ceiling fan will generate complex geometry that makes difficulties for the simulation process and requires higher computational power. Because of that, there are several methods used to predict the performance of the ceiling fan using mathematical techniques but that will give an estimated value of properties in the surrounding.
API Developer Training: Insights for IntegrationsJeremyOtt5
The document provides an overview of Bullhorn's API features including authentication, entities, metadata, subscriptions, and custom tabs. It discusses OAuth authentication including getting authentication URLs, access tokens, and refresh tokens. It provides examples of searching, querying, and paginating entities. It also covers best practices for efficient lookups, getting only needed metadata fields, and avoiding duplicate requests. Subscriptions are described for syncing data changes. Custom tabs are discussed for embedding applications using an iframe. Rate limiting is also mentioned.
This document discusses model integration, which involves linking heterogeneous models together into an operational model chain or network. Model integration requires mediation beyond just merging information from different schemas. It discusses how model integration involves assembling tools and methods to generate new knowledge for engineering tasks. Examples shown include stacking ensemble methods using base learners and a meta-learner to combine predictions, as well as using machine learning models as first-stage classifiers with a deep learning model as the ensemble model. The conclusion is that model integration aims to make better decisions by combining results from different classifiers, whether through an integrated model or final decision.
During the CXL Forum at OCP Global Summit, MemVerge software architect Steve Scargall defines the CXL software stack and where the development is being done.
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Kuniyasu Suzaki
This document discusses hardware-assisted isolated execution environments (HIEE) and trusted execution environments (TEE) on RISC-V processors. It describes how TEEs are implemented using privileges worlds on ARM TrustZone and Intel SGX. For RISC-V, it summarizes proposals for TEEs including Sanctum, MultiZone, and using seL4 microkernel to implement OP-TEE. It also briefly discusses TEE implementations on FPGAs, GPUs, virtualization, and the IETF's TEE provisioning protocol.
The document discusses challenges with processor benchmarking and provides recommendations. It summarizes a case study where a popular CPU benchmark claimed a new processor was 2.6x faster than Intel, but detailed analysis found the benchmark was testing division speed, which accounted for only 0.1% of cycles on Netflix servers. The document advocates for low-level, active benchmarking and profiling over statistical analysis. It also provides a checklist for evaluating benchmarks and cautions that increased processor complexity and cloud environments make accurate benchmarking more difficult.
Francisco Franco fue un líder militar español que impuso una dictadura desde 1939 hasta su muerte en 1975. Gobernó España con mano de hierro, prohibiendo la libertad y controlando estrictamente la educación y los medios. Tuvo una relación complicada con su madre y se obsesionó con imponer su voluntad sobre los demás.
Research 101 - Paper Writing with LaTeXJia-Bin Huang
Paper Writing with LaTeX
PDF: https://filebox.ece.vt.edu/~jbhuang/slides/Research%20101%20-%20Paper%20Writing%20with%20LaTeX.pdf
PPTX: https://filebox.ece.vt.edu/~jbhuang/slides/Research%20101%20-%20Paper%20Writing%20with%20LaTeX.pptx
The document provides an overview of Unit 1 of a Python programming course taught by Dr. C. Sreedhar. Unit 1 covers introduction to Python including its history, installation, execution, commenting, data types, operators, and writing simple programs. It discusses Python's character set, tokens, core data types, I/O functions, assigning values to variables, and multiple assignments. Operators and expressions such as arithmetic, comparison, logical, and bitwise operators are also covered. Examples of simple Python programs are provided.
This document discusses list comprehensions in Python. It provides examples of using list comprehensions to generate lists based on conditions. It describes generating a list of squares of numbers from 1 to 20 and generating a list of letters from a dictionary whose values are greater than or equal to 3. It then discusses using list comprehensions to solve practice problems involving loading height data from a file, summarizing statistics, looking up heights, finding people above a certain height, and printing a report of heights.
This document discusses an introduction to Python training provided by DataFlair. It covers what Python is as an interpreted, high-level and general-purpose programming language. It discusses the history of Python from its conception in 1980 to the end of life for Python 2.7 in 2020. It also outlines some of Python's key features and components like functions, modules, packages and classes. Finally, it discusses frameworks and flavors of Python like Django, Flask and Jython as well as uses of Python for tasks like website building, data analysis and machine learning.
Q1 Memory Fabric Forum: Memory expansion with CXL-Ready Systems and DevicesMemory Fabric Forum
Ravi Gummaluri, Director, CXL System Architecture at Micron describes use cases for memory expansion with tiered DRAM and CXL memory, along with performance data.
Transient three dimensional cfd modelling of ceilng fanLahiru Dilshan
Ceiling fans are used to get thermal comfort, especially in tropical countries. With the increment of the usage of air conditioners, the emission of CO2 is increased. But ceiling fans are a limited solution, that saves much energy compared to air conditioners. Ceiling fans generate a non-uniform velocity profile, so that, there is a non-uniform thermal environment. That non-uniform environment does not imply lower thermal comfort, that will give enough thermal comfort with low energy cost by air velocity. Hence, there will be difficulties of analysing with simple modelling techniques in that environment. So, to predict the performance of the ceiling fan required more accurate models.
The accurate model of a ceiling fan will generate complex geometry that makes difficulties for the simulation process and requires higher computational power. Because of that, there are several methods used to predict the performance of the ceiling fan using mathematical techniques but that will give an estimated value of properties in the surrounding.
API Developer Training: Insights for IntegrationsJeremyOtt5
The document provides an overview of Bullhorn's API features including authentication, entities, metadata, subscriptions, and custom tabs. It discusses OAuth authentication including getting authentication URLs, access tokens, and refresh tokens. It provides examples of searching, querying, and paginating entities. It also covers best practices for efficient lookups, getting only needed metadata fields, and avoiding duplicate requests. Subscriptions are described for syncing data changes. Custom tabs are discussed for embedding applications using an iframe. Rate limiting is also mentioned.
This document discusses model integration, which involves linking heterogeneous models together into an operational model chain or network. Model integration requires mediation beyond just merging information from different schemas. It discusses how model integration involves assembling tools and methods to generate new knowledge for engineering tasks. Examples shown include stacking ensemble methods using base learners and a meta-learner to combine predictions, as well as using machine learning models as first-stage classifiers with a deep learning model as the ensemble model. The conclusion is that model integration aims to make better decisions by combining results from different classifiers, whether through an integrated model or final decision.
During the CXL Forum at OCP Global Summit, MemVerge software architect Steve Scargall defines the CXL software stack and where the development is being done.
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Kuniyasu Suzaki
This document discusses hardware-assisted isolated execution environments (HIEE) and trusted execution environments (TEE) on RISC-V processors. It describes how TEEs are implemented using privileges worlds on ARM TrustZone and Intel SGX. For RISC-V, it summarizes proposals for TEEs including Sanctum, MultiZone, and using seL4 microkernel to implement OP-TEE. It also briefly discusses TEE implementations on FPGAs, GPUs, virtualization, and the IETF's TEE provisioning protocol.
The document discusses challenges with processor benchmarking and provides recommendations. It summarizes a case study where a popular CPU benchmark claimed a new processor was 2.6x faster than Intel, but detailed analysis found the benchmark was testing division speed, which accounted for only 0.1% of cycles on Netflix servers. The document advocates for low-level, active benchmarking and profiling over statistical analysis. It also provides a checklist for evaluating benchmarks and cautions that increased processor complexity and cloud environments make accurate benchmarking more difficult.
Francisco Franco fue un líder militar español que impuso una dictadura desde 1939 hasta su muerte en 1975. Gobernó España con mano de hierro, prohibiendo la libertad y controlando estrictamente la educación y los medios. Tuvo una relación complicada con su madre y se obsesionó con imponer su voluntad sobre los demás.
Research 101 - Paper Writing with LaTeXJia-Bin Huang
Paper Writing with LaTeX
PDF: https://filebox.ece.vt.edu/~jbhuang/slides/Research%20101%20-%20Paper%20Writing%20with%20LaTeX.pdf
PPTX: https://filebox.ece.vt.edu/~jbhuang/slides/Research%20101%20-%20Paper%20Writing%20with%20LaTeX.pptx
This document provides tips and strategies for effectively reading academic papers. It discusses deciding what papers to read based on relevance and credibility. It recommends making best use of academic resources like preprint sites, blogs, and mailing lists to stay updated. It explains the importance of reading for breadth to understand the big picture and reading for depth to critically examine assumptions, methods, statistics and conclusions. The document concludes by discussing how to take notes and think creatively after reading papers to develop new research ideas.
Computer vision has been studied for more than 40 years. Due to the increasingly diverse and rapidly developed topics in vision and the related fields (e.g., machine learning, signal processing, cognitive science), the tasks to come up with new research ideas are usually daunting for junior graduate students in this field. In this talk, I will present five methods to come up with new research ideas. For each method, I will give several examples (i.e., existing works in the literature) to illustrate how the method works in practice.
This is a common sense talk and will not have complicated math equations and theories.
Note: The content of this talk is inspired by "Raskar Idea Hexagon" - Prof. Ramesh Raskar's talk on "How to come up with new Ideas".
To download the presentation slide with videos, please visit
http://jbhuang0604.blogspot.com/2010/05/how-to-come-up-with-new-research-ideas.html
For the video lecture (in Chinese), please visit
http://jbhuang0604.blogspot.com/2010/06/blog-post_14.html
What makes a creative photograph? This talk summarizes five approaches to make creative photographs. For each approach, many example images from the internet are used to demonstrate how the method works in practice.
For more explanations on example images, please visit my blog: http://jbhuang0604.blogspot.com/
- The document provides an introduction to linear algebra and MATLAB. It discusses various linear algebra concepts like vectors, matrices, tensors, and operations on them.
- It then covers key MATLAB topics - basic data types, vector and matrix operations, control flow, plotting, and writing efficient code.
- The document emphasizes how linear algebra and MATLAB are closely related and commonly used together in applications like image and signal processing.
This document provides an overview of a computer vision crash course. It begins with an agenda for the course that includes introductions, fundamentals of computer vision, and recent advances. It then discusses some of the challenges of computer vision and provides examples of computer vision applications such as face detection, recognition, tracking, hand tracking, biometrics, optical character recognition, computer vision in sports, scene reconstruction, and more. It also provides a brief history of the field and discusses some of the fundamentals including light, matching, alignment, geometry, grouping, and recognition.
Toward Accurate and Robust Cross-Ratio based Gaze Trackers Through Learning F...Jia-Bin Huang
This document proposes a learning-based approach to improve the accuracy and robustness of cross-ratio based gaze estimation. It introduces an adaptive homography mapping method that uses both head pose variables and pupil center position as predictor variables in a quadratic regression model. This approach is trained on large amounts of simulated eye tracking data to minimize errors across different head poses and eye parameters. Experimental results show the method achieves state-of-the-art accuracy for both stationary gaze and head movements, and is robust to variations in eye features, sensor resolution, and noise.
In this paper, we describe a new interactive image completion system that allows users to easily specify various forms of mid-level structures in the image. Our system supports the specification of four basic symmetric types: reflection, translation, rotation, and glide. The user inputs are automatically converted into guidance maps that encode
possible candidate shifts and, indirectly, local transformations of rotation and scale. These guidance maps are used in conjunction with a color matching cost for image
completion. We show that our system is capable of handling a variety of challenging examples.
http://www.jiabinhuang.com/
Saliency Detection via Divergence Analysis: A Unified Perspective ICPR 2012Jia-Bin Huang
A number of bottom-up saliency detection algorithms have been proposed in the literature. Since these have been developed from intuition and principles inspired by psychophysical studies of human vision, the theoretical relations among them are unclear. In this paper, we present a unifying perspective. Saliency of an image area is defined in terms of divergence between certain feature distributions estimated from the
central part and its surround. We show that various, seemingly different saliency estimation algorithms are in fact closely related. We also discuss some commonly
used center-surround selection strategies. Experiments with two datasets are presented to quantify the relative advantages of these algorithms.
Best student paper award in Computer Vision and Robotics Track
Enhancing Color Representation for the Color Vision Impaired (CVAVI 2008)Jia-Bin Huang
In this paper, we propose a fast re-coloring algorithm to improve the accessibility for the color vision impaired. Compared to people with normal color vision, people with color vision impairment have difficulty in distinguishing between certain combinations of colors. This may hinder visual communication owing to the increasing use of colors in recent years. To address this problem, we re-map the hue components in the HSV color space based on the statistics of local characteristics of the original color image. We enhance the color contrast through generalized histogram equalization. A control parameter is provided for various users to specify the degree of enhancement to meet their needs. Experimental results are illustrated to demonstrate the effectiveness and efficiency of the proposed re-coloring algorithm.
Image Completion using Planar Structure Guidance (SIGGRAPH 2014)Jia-Bin Huang
We propose a method for automatically guiding patch-based image completion using mid-level structural cues. Our method first estimates planar projection parameters, softly segments the known region into planes, and discovers translational regularity within these planes. This information is then converted into soft constraints for the low-level completion algorithm by defining prior probabilities for patch offsets and transformations. Our method handles multiple planes, and in the absence of any detected planes falls back to a baseline fronto-parallel image completion algorithm. We validate our technique through extensive comparisons with state-of-the-art algorithms on a variety of scenes.
Project page: https://sites.google.com/site/jbhuang0604/publications/struct_completion
Estimating Human Pose from Occluded Images (ACCV 2009)Jia-Bin Huang
We address the problem of recovering 3D human pose from single 2D images, in which the pose estimation problem is formulated as a direct nonlinear regression from image observation to 3D joint positions. One key issue that has not been addressed in the literature is how to estimate 3D pose when humans in the scenes are partially or heavily occluded. When occlusions occur, features extracted from image observations (e.g., silhouettes-based shape features, histogram of oriented gradient, etc.) are seriously corrupted, and consequently the regressor (trained on un-occluded images) is unable to estimate pose states correctly. In this paper, we present a method that is capable of handling occlusions using sparse signal representations, in which each test sample is represented as a compact linear combination of training samples. The sparsest solution can then be efficiently obtained by solving a convex optimization problem with certain norms (such as l1-norm). The corrupted test image can be recovered with a sparse linear combination of un-occluded training images which can then be used for estimating human pose correctly (as if no occlusions exist). We also show that the proposed approach implicitly performs relevant feature selection with un-occluded test images. Experimental results on synthetic and real data sets bear out our theory that with sparse representation 3D human pose can be robustly estimated when humans are partially or heavily occluded in the scenes.
This document provides an overview of image features and categorization in computer vision. It discusses why categorization is important for making predictions about objects and communicating categories. It describes approaches to categorization like definitional, prototype, and exemplar models. Common image features for categorization like color, texture, gradients, and interest points are presented. Methods for representing images as histograms of these features and encoding local descriptors as "bags of visual words" are covered. Deep convolutional neural networks and region-based representations are also summarized. The document aims to explain current techniques for image and region categorization using supervised learning of classifiers on labeled examples and extracted image features.
This document summarizes reasons to join the Formosa Volleyball Enthusiasts at UIUC. It notes that the group has experienced success in volleyball tournaments and includes players of all skill levels. It also highlights that the group is active, organizing various social and recreational activities beyond just volleyball. Finally, it provides logistical information about typical volleyball meetup times and locations, as well as contact details to learn more.
A Physical Approach to Moving Cast Shadow Detection (ICASSP 2009)Jia-Bin Huang
This document presents a physical approach to detecting moving cast shadows in video. It introduces a physics-based shadow model that decomposes light sources into direct and ambient components. Color features are used to encode the difference between shadow and background pixels. A weak shadow detector is used to identify shadow candidates, and a Gaussian mixture model learns the shadow model over time. Spatial information is incorporated to improve learning. The approach detects shadows at light/shadow borders separately. Experimental results on various sequences demonstrate improved shadow detection and discrimination rates compared to other methods. Future work will derive physics-based features for a global shadow model and extend the physical model to more complex cases.
Here is my updated CV using the ModernCV template (http://www.latextemplates.com/template/moderncv-cv-and-cover-letter).
You can find the Tex source file in (https://dl.dropbox.com/u/2810224/Homepage/resume/modern%20style.rar)
This document outlines a process for simulating miniature photography effects through computational techniques. It discusses using depth of field specification and blurring to create a miniature effect from a standard photo. The author presents several methods for specifying depth of field, including using horizontal focus lines, object masks, and salient region detection. Open issues discussed are depth estimation from a single image and improving salient region selection to better automate the miniature photography simulation process.
This document provides a summary of MATLAB fundamentals including:
1. Basics such as defining and changing variables, arithmetic operations, elementary functions, complex numbers, constants, and numerics.
2. Graphics and plotting capabilities including different plot types.
3. Programming methods like functions, relational and logical operations, control structures like if/else statements and loops, and special topics like polynomials, interpolation, differential equations, and optimization.
4. Descriptive statistics, discrete math functions, and random number generation.
This document provides an introduction and overview of MATLAB. It discusses what MATLAB is, its main features and interfaces. Some key points covered include:
- MATLAB is a computing environment for doing matrix manipulations, calculations and data analysis. It has specialized toolboxes for tasks like signal processing and system analysis.
- The main interfaces are the command window, workspace, command history and editor window. Commands can be executed directly, through script files or custom functions.
- MATLAB handles matrices and vectors natively and has extensive math and graphics functions. Basic operations include matrix/vector creation, arithmetic, plotting and flow control structures.
- Help is available through the help menu, demos and documentation. Common functions covered
This document provides an overview of MATLAB, including the MATLAB desktop, variables, vectors, matrices, matrix operations, array operations, built-in functions, data visualization, flow control using if and for statements, and user-defined functions. It introduces key MATLAB concepts like the command window, workspace, and editor. It also demonstrates how to create and manipulate variables, vectors, matrices, and plots in MATLAB.
The document discusses MATLAB, an numerical computing environment and programming language. It provides an introduction to MATLAB, describing its origins and uses. It also outlines some key MATLAB elements like variables, matrices, loading and saving data, and the MATLAB programming language. The document concludes by discussing some MATLAB functions and advantages/disadvantages of the software.
The document provides tips for improving the performance of MATLAB code. It discusses using the profiler to identify bottlenecks, preallocating arrays to avoid dynamic resizing overhead, and how the Just-In-Time accelerator can speed up loops and functions by avoiding interpretation. Preallocating arrays is shown to improve the speed of examples by over 3 times, and is beneficial for cases where the final array size may vary. The JIT accelerator most effectively accelerates code using supported data types, array shapes, and language elements within loops and conditionals.
Matlab is fast for matrix computations because it leverages optimized numerical libraries. It is a full programming language with flow control capabilities. Everything in Matlab is treated as matrices by default, with matrix operations preferred over element-wise operations. Basic plotting, debugging, and batch file capabilities make Matlab useful for prototyping. Avoiding loops and using vectorized operations improves performance.
Matlab for beginners, Introduction, signal processingDr. Manjunatha. P
The document provides an introduction and overview of MATLAB. It discusses that MATLAB was initially developed as a tool to help students learn linear algebra and is now a widely used software package for engineering and mathematical problems. The document then covers various MATLAB windows and basics like variables, matrices, plot commands, m-files, and flow control structures like for loops and if/else statements. It also provides examples of plotting functions and creating graphs with labels and titles.
Here is a vectorized version:
function [C] = matrix_multiply(A,B)
[m,p] = size(A);
[p,n] = size(B);
C = zeros(m,n);
for k = 1:p
C = C + A(:,k)*B(k,:);
end
end
This avoids the nested for loops and performs the multiplication using matrix operations, making it much faster for large matrices.
Here is a vectorized version:
function [C] = matrix_multiply(A,B)
[m,p] = size(A);
[p,n] = size(B);
C = zeros(m,n);
for k = 1:p
C = C + A(:,k)*B(k,:);
end
end
This avoids the nested for loops and performs the multiplication using matrix operations, making it much faster for large matrices.
Here is a vectorized version:
function [C] = matrix_multiply(A,B)
[m,p] = size(A);
[p,n] = size(B);
C = zeros(m,n);
for k = 1:p
C = C + A(:,k)*B(k,:);
end
end
This avoids the nested for loops and performs the multiplication using matrix operations, making it much faster for large matrices.
This document provides an overview of MATLAB, including what it is, its features, toolboxes, applications, and how to perform various tasks. MATLAB is a numerical computing environment and programming language used for algorithm development, data analysis, and visualization. It allows matrix operations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages. The document describes MATLAB's various components, data types, commands, and how to work with matrices, arrays, plots, and other mathematical functions. It also outlines uses of MATLAB in domains like signal processing, control systems, image processing, and more.
Introduction to Matlab
Lecture 1:
Introduction: What is Matlab, History of Matlab, strengths, weakness
Getting familiar with the interface: Layout, Pull down menus
Creating and manipulating objects: Variables (scalars, vectors, matrices, text strings), Operators (arithmetic, relational, logical) and built-in functions
This document provides an introduction to MATLAB. It covers MATLAB basics like arithmetic, variables, vectors, matrices and built-in functions. It also discusses plotting graphs, programming in MATLAB by creating functions and scripts, and solving systems of linear equations. The document is compiled by Endalkachew Teshome from the Department of Mathematics at AMU for teaching MATLAB.
MATLAB is a high-level programming language and computing environment used for numerical computations, visualization, and programming. The document discusses MATLAB's capabilities including its toolboxes, plotting functions, control structures, M-files, and user-defined functions. MATLAB is useful for engineering and scientific calculations due to its matrix-based operations and built-in functions.
This document provides an overview of MATLAB, including its uses, features, and basic programming concepts. MATLAB is a numerical computing environment and programming language that allows matrix manipulations, data visualization, algorithm development, and interfacing with other languages. It has a comprehensive set of built-in functions for mathematical and technical computing. The document discusses MATLAB's programming constructs like scripts, functions, operators, decision making statements, and loops. It also covers basic data types like vectors and matrices.
This document provides an overview of MATLAB, its applications, and how to use its features. MATLAB can be used for numerical computation and was originally designed for matrix operations. It has since expanded to include tools for data analysis, signal processing, optimization, and more. The document describes MATLAB's basic interface and commands, how to work with matrices and vectors, perform math operations and logical operations, plot functions, write M-files and functions, and save and load work. It also briefly mentions Simulink for modeling and simulating dynamic systems.
This document provides an overview of optimization techniques that can be performed using MATLAB. It discusses unconstrained optimization problems where the goal is to minimize or maximize an objective function without any constraints on the variables. Constrained optimization problems are also discussed, where the goal is to optimize the objective function subject to certain equality and inequality constraints. MATLAB functions like fminsearch and fmincon can be used to find the optimal solution for unconstrained and constrained problems respectively. Gradient-based methods for solving constrained optimization problems are also briefly covered.
This document provides guidance on how to write a clear scientific paper. It discusses the key sections of a paper including the title, abstract, introduction, related work, method, results, and conclusions. The introduction should motivate the problem, prior approaches, contributions, and provide a teaser figure. The related work section should group existing work into topics and compare approaches. The method section should describe the approach with subsections and forward references. The results section covers experiments, metrics, datasets, and includes visual and quantitative results with an ablation study. Figures and tables should be able to stand alone in a presentation. Writing should be concise, consistent, specific and direct with careful use of words, equations, and notation. Overall, the
Single Image Super-Resolution from Transformed Self-Exemplars (CVPR 2015)Jia-Bin Huang
Self-similarity based super-resolution (SR) algorithms are able to produce visually pleasing results without extensive training on external databases. Such algorithms exploit the statistical prior that patches in a natural image tend to recur within and across scales of the same image. However, the internal dictionary obtained from the given image may not always be sufficiently expressive to cover the textural appearance variations in the scene. In this paper, we extend self-similarity based SR to overcome this drawback. We expand the internal patch search space by allowing geometric variations. We do so by explicitly localizing planes in the scene and using the detected perspective geometry to guide the patch search process. We also incorporate additional affine transformations to accommodate local shape variations. We propose a compositional model to simultaneously handle both types of transformations. We extensively evaluate the performance in both urban and natural scenes. Even without using any external training databases, we achieve significantly superior results on urban scenes, while maintaining comparable performance on natural scenes as other state-of-the-art SR algorithms.
http://bit.ly/selfexemplarsr
Real-time Face Detection and RecognitionJia-Bin Huang
Zelun Luo and Anarghya Mitra created a robust face identification system under professors Jia-Bin Huang and Narendra Ahuja at the University of Illinois. The system uses an integral image and cascade architecture with Haar-like features to identify faces. It can identify multiple faces in an image and faces not in its original database by using a learning algorithm. The integral image allows features to be computed rapidly in constant time, while the cascade structure rejects most non-face sub-windows early.
The document proposes a method for altering undesired facial expressions in photographs by combining landmark-based and appearance-based facial expression transfer. It aims to utilize the availability of large datasets to tackle large pose differences when transferring expressions between images. The method involves using 3D rotation on a reference image to normalize pose differences, then computing an expression flow to transfer facial components using an appearance-based approach. This allows creating morphs between faces in different poses and angles. The goal is to extend this technique to transfer expressions between people of different ethnicities.
Image Smoothing for Structure ExtractionJia-Bin Huang
The document discusses image smoothing techniques for structure extraction. It aims to achieve edge-aware smoothing while distinguishing texture from structure. Previous related work includes Gaussian blurring, L0 gradient minimization, and domain transformations. The proposed algorithm formulates smoothing as a global optimization problem that minimizes the data term and total variation regularization term. It uses a Huber loss function and iterative reweighted L1 norm to encourage sparsity. Test results will be conducted using source code from previous works. Future work includes implementing the algorithm in CVX and testing effectiveness.
Static and Dynamic Hand Gesture RecognitionJia-Bin Huang
This document summarizes work on static and dynamic hand gesture recognition using a webcam. For static gesture recognition, a random forest classifier was used to recognize four hand poses from images. For dynamic gesture recognition, the goal was to track hand movements to control a mouse cursor. Key challenges addressed were skin detection using color spaces, fingertip detection using hand contour curvatures, and calculating hand center position for cursor control. The work provided skills in computer vision techniques like feature extraction and classification algorithms.
Real-Time Face Detection, Tracking, and Attributes RecognitionJia-Bin Huang
This document summarizes a student's research project on real-time face detection, tracking, and attribute recognition. The goal is to develop a system that can detect faces in real-time and identify attributes like gender, race, etc. It will apply techniques like the Viola-Jones face detection framework, L1 minimization tracking, and face attribute recognition. Potential applications include surveillance, security, human-computer interaction, robotics, and more. The document outlines the methods used and references related work.
Estimating Human Pose from Occluded Images (ACCV 2009)Jia-Bin Huang
We address the problem of recovering 3D human pose from single 2D images, in which the pose estimation problem is formulated as a direct nonlinear regression from image observation to 3D joint positions. One key issue that has not been addressed in the literature is how to estimate 3D pose when humans in the scenes are partially or heavily occluded. When occlusions occur, features extracted from image observations (e.g., silhouettes-based shape features, histogram of oriented gradient, etc.) are seriously corrupted, and consequently the regressor (trained on un-occluded images) is unable to estimate pose states correctly. In this paper, we present a method that is capable of handling occlusions using sparse signal representations, in which each test sample is represented as a compact linear combination of training samples. The sparsest solution can then be efficiently obtained by solving a convex optimization problem with certain norms (such as l1-norm). The corrupted test image can be recovered with a sparse linear combination of un-occluded training images which can then be used for estimating human pose correctly (as if no occlusions exist). We also show that the proposed approach implicitly performs relevant feature selection with un-occluded test images. Experimental results on synthetic and real data sets bear out our theory that with sparse representation 3D human pose can be robustly estimated when humans are partially or heavily occluded in the scenes.
Information Preserving Color Transformation for Protanopia and Deuteranopia (...Jia-Bin Huang
This document proposes a new method for recoloring images to make them more comprehensible for those with protanopia and deuteranopia, two types of color blindness. The method aims to preserve color information in the original images while maintaining natural-looking recolored images. It introduces two error functions to measure information preservation and naturalness, which are combined into an objective function using Lagrange multipliers. This function is minimized to obtain optimal color transformation settings. Experimental results show the method can generate more understandable images for those with color deficiencies while keeping recolored images natural-looking for those with normal vision.
Enhancing Color Representation for the Color Vision Impaired (CVAVI 2008)Jia-Bin Huang
This document proposes a fast re-coloring algorithm to improve image accessibility for those with color vision deficiencies. It discusses how color vision impairment affects one's ability to distinguish colors and reviews previous methods for enhancing color representation. The proposed method remaps hue values in the HSV color space based on local image statistics and enhances color contrast through histogram equalization, allowing users to specify the degree of enhancement.
Learning Moving Cast Shadows for Foreground Detection (VS 2008)Jia-Bin Huang
The document summarizes a research paper about learning moving cast shadows for foreground detection. It presents a proposed algorithm that uses a confidence-rated Gaussian mixture learning approach and Bayesian framework with Markov random fields to model local and global shadow features. This exploits the complementary nature of local and global features to improve shadow detection. The algorithm is evaluated on outdoor and indoor video sequences, showing improved accuracy over previous methods especially in adaptability to different lighting conditions. Future work could incorporate additional features and more powerful models.
Learning Moving Cast Shadows for Foreground Detection (VS 2008)Jia-Bin Huang
This document summarizes a research paper that presents a new algorithm for detecting foreground objects and moving shadows in surveillance videos. The algorithm uses Gaussian mixture models to learn pixel-based models of cast shadows on background surfaces over time. However, learning pixel-based models can be slow if motion is infrequent. To address this, the algorithm also builds a global shadow model that uses global-level information to help update the local shadow models more quickly. Foreground objects are modeled using nonparametric density estimation of spatial and color information. Finally, background, shadow, and foreground models are combined in a Markov random field energy function that can be efficiently optimized using graph cuts to perform foreground-shadow segmentation. Experimental results demonstrate the effectiveness of the proposed
FME as an Orchestration Tool - Peak of Data & AI 2025Safe Software
Processing huge amounts of data through FME can have performance consequences, but as an orchestration tool, FME is brilliant! We'll take a look at the principles of data gravity, best practices, pros, cons, tips and tricks. And of course all spiced up with relevant examples!
Explore innovative tools tailored for modern finance with our Money Lender Software Development, efficient Daily Pigmy Collection Software, and streamlined Personal Loan Software. This presentation showcases how these solutions simplify loan management, boost collection efficiency, and enhance customer experience for NBFCs, microfinance firms, and individual lenders.
Application Modernization with Choreo - The AI-Native Internal Developer Plat...WSO2
In this slide deck, we explore the challenges and best practices of application modernization. We also deep dive how an internal developer platform as a service like Choreo can fast track your modernization journey with AI capabilities and end-to-end workflow automation.
What is data visualization and how data visualization tool can help.pdfVarsha Nayak
An open source data visualization tool enhances this process by providing flexible, cost-effective solutions that allow users to customize and scale their visualizations according to their needs. These tools enable organizations to make data-driven decisions with complete freedom from proprietary software limitations. Whether you're a data scientist, marketer, or business leader, understanding how to utilize an open source data visualization tool can significantly improve your ability to communicate insights effectively.
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...Alluxio, Inc.
Alluxio Webinar
June 10, 2025
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
David Zhu (Engineering Manager @ Alluxio)
Storing data as Parquet files on cloud object storage, such as AWS S3, has become prevalent not only for large-scale data lakes but also as lightweight feature stores for training and inference, or as document stores for Retrieval-Augmented Generation (RAG). However, querying petabyte-to-exabyte-scale data lakes directly from S3 remains notoriously slow, with latencies typically ranging from hundreds of milliseconds to several seconds.
In this webinar, David Zhu, Software Engineering Manager at Alluxio, will present the results of a joint collaboration between Alluxio and a leading SaaS and data infrastructure enterprise that explored leveraging Alluxio as a high-performance caching and acceleration layer atop AWS S3 for ultra-fast querying of Parquet files at PB scale.
David will share:
- How Alluxio delivers sub-millisecond Time-to-First-Byte (TTFB) for Parquet queries, comparable to S3 Express One Zone, without requiring specialized hardware, data format changes, or data migration from your existing data lake.
- The architecture that enables Alluxio’s throughput to scale linearly with cluster size, achieving one million queries per second on a modest 50-node deployment, surpassing S3 Express single-account throughput by 50x without latency degradation.
- Specifics on how Alluxio offloads partial Parquet read operations and reduces overhead, enabling direct, ultra-low-latency point queries in hundreds of microseconds and achieving a 1,000x performance gain over traditional S3 querying methods.
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptxMaharshi Mallela
Movie recommendation system is a software application or algorithm designed to suggest movies to users based on their preferences, viewing history, or other relevant factors. The primary goal of such a system is to enhance user experience by providing personalized and relevant movie suggestions.
How to Choose the Right Web Development Agency.pdfCreative Fosters
Choosing the right web development agency is key to building a powerful online presence. This detailed guide from Creative Fosters helps you evaluate agencies based on experience, portfolio, technical skills, communication, and post-launch support. Whether you're launching a new site or revamping an old one, these expert tips will ensure you find a reliable team that understands your vision and delivers results. Avoid common mistakes and partner with an agency that aligns with your goals and budget.
Have you upgraded your application from Qt 5 to Qt 6? If so, your QML modules might still be stuck in the old Qt 5 style—technically compatible, but far from optimal. Qt 6 introduces a modernized approach to QML modules that offers better integration with CMake, enhanced maintainability, and significant productivity gains.
In this webinar, we’ll walk you through the benefits of adopting Qt 6 style QML modules and show you how to make the transition. You'll learn how to leverage the new module system to reduce boilerplate, simplify builds, and modernize your application architecture. Whether you're planning a full migration or just exploring what's new, this session will help you get the most out of your move to Qt 6.
A brief introduction to OpenTelemetry, with a practical example of auto-instrumenting a Java web application with the Grafana stack (Loki, Grafana, Tempo, and Mimir).
GDG Douglas - Google AI Agents: Your Next Intern?felipeceotto
Presentation done at the GDG Douglas event for June 2025.
A first look at Google's new Agent Development Kit.
Agent Development Kit is a new open-source framework from Google designed to simplify the full stack end-to-end development of agents and multi-agent systems.
Code and No-Code Journeys: The Coverage OverlookApplitools
Explore practical ways to expand visual and functional UI coverage without deep coding or heavy maintenance in this session. Session recording and more info at applitools.com
In this session we cover the benefits of a migration to Cosmos DB, migration paths, common pain points and best practices. We share our firsthand experiences and customer stories. Adiom is the trusted partner for migration solutions that enable seamless online database migrations from MongoDB to Cosmos DB vCore, and DynamoDB to Cosmos DB for NoSQL.
Agentic Techniques in Retrieval-Augmented Generation with Azure AI SearchMaxim Salnikov
Discover how Agentic Retrieval in Azure AI Search takes Retrieval-Augmented Generation (RAG) to the next level by intelligently breaking down complex queries, leveraging full conversation history, and executing parallel searches through a new LLM-powered query planner. This session introduces a cutting-edge approach that delivers significantly more accurate, relevant, and grounded answers—unlocking new capabilities for building smarter, more responsive generative AI applications.
Traditional Retrieval-Augmented Generation (RAG) pipelines work well for simple queries—but when users ask complex, multi-part questions or refer to previous conversation history, they often fall short. That’s where Agentic Retrieval comes in: a game-changing advancement in Azure AI Search that brings LLM-powered reasoning directly into the retrieval layer.
This session unveils how agentic techniques elevate your RAG-based applications by introducing intelligent query planning, subquery decomposition, parallel execution, and result merging—all orchestrated by a new Knowledge Agent. You’ll learn how this approach significantly boosts relevance, groundedness, and answer quality, especially for sophisticated enterprise use cases.
Key takeaways:
- Understand the evolution from keyword and vector search to agentic query orchestration
- See how full conversation context improves retrieval accuracy
- Explore measurable improvements in answer relevance and completeness (up to 40% gains!)
- Get hands-on guidance on integrating Agentic Retrieval with Azure AI Foundry and SDKs
- Discover how to build scalable, AI-first applications powered by this new paradigm
Whether you're building intelligent copilots, enterprise Q&A bots, or AI-driven search solutions, this session will equip you with the tools and patterns to push beyond traditional RAG.
Flutter is basically Google’s portable user
interface (UI) toolkit, used to build and
develop eye-catching, natively-built
applications for mobile, desktop, and web,
from a single codebase. Flutter is free, open-
sourced, and compatible with existing code. It
is utilized by companies and developers
around the world, due to its user-friendly
interface and fairly simple, yet to-the-point
commands.
2. Resources
• Techniques for Improving Performance by Mathwork
• Writing Fast Matlab Code by Pascal Getreuer
• Guidelines for writing clean and fast code in MATLAB by Nico Schlömer
• http://www.slideshare.net/UNISTSupercomputingCenter/speeding-
upmatlabapplications
• http://www.matlabtips.com/
3. Using the Profiler
• Helps uncover performance problems
• Timing functions:
• tic, toc
• The following timings were measured on
- CPU i5 1.7 GHz
- 4 GB RAM
• http://www.mathworks.com/help/matlab/ref/profile.html
7. Using Vectorization
• Appearance
• more like the mathematical expressions, easier to understand.
• Less Error Prone
• Vectorized code is often shorter.
• Fewer opportunities to introduce programming errors.
• Performance:
• Often runs much faster than the corresponding code containing loops.
See http://www.mathworks.com/help/matlab/matlab_prog/vectorization.html
8. Binary Singleton Expansion Function
• Make each column in A zero mean
>> n1 = 5000;
>> n2 = 10000;
>> A = randn(n1, n2);
• See http://blogs.mathworks.com/loren/2008/08/04/comparing-repmat-and-bsxfun-
performance/
0.2994 s 0.2251 s
Why bsxfun is faster than repmat?
- bsxfun handles replication of the array
implicitly, thus avoid memory allocation
- Bsxfun supports multi-thread
9. Loop, Vector and Boolean Indexing
• Make odd entries in vector v zero
• n = 1e6;
• See http://www.mathworks.com/help/matlab/learn_matlab/array-indexing.html
• See Fast manipulation of multi-dimensional arrays in Matlab by Kevin Murphy
0.3772 s 0.0081 s 0.0130 s
11. Dense and Sparse Matrices
• Dense: 16.1332 s
• Sparse: 0.0040 s
More than 4000x
faster!
Useful functions:
sparse(), spdiags(),
speye(), kron().
0.6424 s 0.1157 s
13. Iterative Methods for Larger Problems
• Iterative solvers in MATLAB:
• bicg, bicgstab, cgs, gmres, lsqr, minres, pcg, symmlq, qmr
• [x,flag,relres,iter,resvec] = method(A,b,tol,maxit,M1,M2,x0)
• source: Writing Fast Matlab Code by Pascal Getreuer
14. Solving Ax = b when A is a Special Matrix
• Circulant matrices
• Matrices corresponding to cyclic convolution
Ax = conv(h, x) are diagonalized in the Fourier domain
>> x = ifft( fft(b) ./ fft(h) );
• Triangular and banded
• Efficiently solved by sparse LU factorization
>> [L,U] = lu(sparse(A));
>> x = U(Lb);
• Poisson problems
• See http://www.cs.berkeley.edu/~demmel/cs267/lecture25/lecture25.html
21. Clip values
>> n = 2000;
>> lowerBound = 0;
>> upperBound = 1;
>> A = randn(n,n);
0.0121 s0.1285 s
22. Moving Average Filter
• Compute an N-sample moving average of x
>> n = 1e7;
>> N = 1000;
>> x = randn(n,1);
3.2285 s 0.3847 s
23. Find the min/max of a matrix or N-d array
>> n = 500;
>> A = randn(n,n,n);
0.5465 s
0.1938 s
24. Acceleration using MEX (Matlab Executable)
• Call your C, C++, or Fortran codes from the MATLAB
• Speed up specific subroutines
• See http://www.mathworks.com/help/matlab/matlab_external/introducing-mex-
files.html
25. MATLAB Coder
• MATLAB Coder™ generates standalone C and C++ code from
MATLAB® code
• See video examples in http://www.mathworks.com/products/matlab-
coder/videos.html
• See http://www.mathworks.com/products/matlab-coder/
27. parfor for parallel processing
• Requirements
• Task independent
• Order independent
See http://www.mathworks.com/products/parallel-computing/
28. Parallel Processing in Matlab
• MatlabMPI
• multicore
• pMatlab: Parallel Matlab Toolbox
• Parallel Computing Toolbox (Mathworks)
• Distributed Computing Server (Mathworks)
• MATLAB plug-in for CUDA (CUDA is a library that used an nVidia
board)
• Source: http://www-h.eng.cam.ac.uk/help/tpl/programs/Matlab/faster_scripts.html
29. Resources for your final project
• Awesome computer vision by Jia-Bin Huang
• A curated list of computer vision resources
• VLFeat
• features extraction and matching, segmentation, clustering
• Piotr's Computer Vision Matlab Toolbox
• Filters, channels, detectors, image/video manipulation
• OpenCV (MexOpenCV by Kota Yamaguchi)
• General purpose computer vision library
Editor's Notes
#6: Repeatedly expanding the size of an array over time, (for example, adding more elements to it each time through a programming loop), can adversely affect the performance of your program. This is because
1) MATLAB has to spend time allocating more memory each time you increase the size of the array.
2) This newly allocated memory is likely to be noncontiguous, thus slowing down any operations that MATLAB needs to perform on the array.