Announcements Digital Image Processing Quick Links
Coming up again in Autumn 2016 in an OBE format!

*OBE is outcome-based education according to Washington Accord

11 July 2016 Classes start on Wed, 20 July 2016.
EE60062

Subject Type: Elective | LTP: 3-1-0 | Credits: 4
Location: N232, Department of Electrical Engineering, IIT Kharagpur
Time: Slot A / Mon (08:00 AM - 09:55 AM) + Tue (12:00 PM - 12:55 PM) + Tue (06:00 PM - 06:55 PM)

Instructor: Dr. Debdoot Sheet
Tutoring: N240, SIP Lab, Electrical Engg.
Kausik Das, Mon (5:30 PM - 6:30 PM)
Rachana Sathish, Tue (5:00 PM - 6:00 PM)
Kaustuv Mishra, Wed (5:30 PM - 6:30 PM)
Anusha Vupputuri, Thu (5:30 PM - 6:30 PM)

Grading: Attendance 10%, Capstone Project 30%, Assignments 20%, Mid-Term 10%, End-Term 30%
Linear Algebra - Gilbert Strang
Digital Signal Processing - Alan V. Oppenheim
Design and Analysis of Algorithms - Dana Moshkovitz and Bruce Tidor
Introduction To MATLAB Programming - Yossi Farjoun
Computational Methods of Scientific Programming - Thomas Herring and Chris Hill

Tools of the Trade: Matlab SDK | Enthough Canopy Python | MikTex Latex compiler | Git version control
Resources: Dataset | Programming Books

Tutoring Group on Piazza || Intro Slides

Why this subject?
Contents
Digital image processing (DIP) refers to the field of processing of images handled in a digital format using a digital computer. The field had a major impact on our day to day lives, across smartphone apps, visual media, advertisements, infotainment, gaming, medical imaging, vehicular and diving technology, navigation, survellance, etc. in the current age and has been imbibed into the common place beyond our pondering. DIP is the foundation of a larger field known as machine vision, which is valued industrially as a $9.5 Billion market by 2020.

If you are looking forward to a career in imaging technology, smart cameras and smartphones, image sensors, photography and videography, digtal multimedia, visualization, augmented reality, gaming, automotive and navigation system, this a foundation subject you should definitely opt for.

Text books:
[1]. M. Sonka, V. Hlavac and R. Boyle, Image Processing, Analysis, and Machine Vision, Cengage Learning, 2008.
[2]. R. C. Gonzalez and R. E. Woods, Digital Image Processing, Pearson, 2009.

Measure of Outcome:
A student undertaking this subject would be graded based on perfromance in all of the following:
(1) Regular participation in class activity, timely submission of all assignments.
(2) Complete a Capstone Project in a group of 4 students, which would be openly evaluated in a forum.
(3) Submit a choice by mid-term for proposal for the Capstone Project you are undertaking.
(4) Make an end-term poster presentation and live demo for your Capstone Project. Submit a 4-page term paper on it.
(5) Appear for all the exams.
Image formation and digital imaging
Pixels, colors, image formats, display
Histograms, numerical calculus, fuzzy sets
Convolution, correlation, Fourier transform
Coordinate transformation and interpolation
Image enhancement
Noise models and image restoration
Image segmentation and superpixels
Mathematical morphology
Texture and wavelets
Object representation and description
HDR and EDF photography
Object detection and tracking



Module I: Introductory Concepts
1. Image formation Refresher of geometric optics, pin-hole and lens-based image formation, real-world to camera to image plan coordinate system, lens aberation and distortions, radiometric concepts of image formation. [1]. 3.4
2. Digital imaging sensors Photosensitivity of semiconductors, digital monochromatic camera, color sensor. [1]. 2.5
[2]. 2.3
3. Mathematical representations and properties Image representation in analog domain as continuous function, image digitization, resolution, sampling and quantization, storage and retrieval, metric and topological properties, relationships between pixels, adjacency, connectivity, distance. [1]. 2.1 - 2.3.1
[2]. 2.4 - 2.5
4. Colors in images Physics of color, color perception by human vision, color representations, color spaces and transformation, indexed (paletted) color representations, color reproduction in electronic and printed systems. [1]. 2.5
[2]. 6.1 - 6.3

Module II: Analytical Foundation for Digital Image Processing
1. Image histogram and probability density Histogram of a grayscale and color image, probability density from histogram, kernel density estimation. [1]. 2.3.2
[2]. 3.3
2. Fuzzy set theory Preliminaries and definition, computing a fuzzy histogram, some basic operations. [2]. 3.8
3. Numerical calculus Refresher of numerical differentiation and integration.
4. Convolution and correlation Convolution as a mathematical operation from 1D to 2D, correlation, spatial point operations and solutions via convolution and correlation, kernels and their significance. [1]. 3.1.2
[2]. 3.4.2 - 3.4.4
5. Functional mapping and look-up tables Point operators and intersity transformation via functional mapping and look-up tables. [1]. 5.1.2
[2]. 3.2
6. Fourier transform Images as linear systems, from 1D to 2D Fourier transform, sampling and discrete Fourier transform (DFT), properties and zero-centering of the 2D-DFT, frequency in images. [1]. 3.2.1 - 3.2.5
[2]. 4.2 - 4.6
7. Image interpolation and coordinate space conversion Image interpolation, nearest neighbor rule, bilinear rule, polar-to-cartesian scan conversion and vice-versa, color filter array (CFA) interpolation for color image synthesis from (Bayer mosaic) color sensor data. [1]. 5.2.2
[2]. 2.4.4, 2.6.5
Patent: US 3971065

Module III: Image Enhancement
1. Grayscale intensity transformation Image negation, log- and power-law transform, gamma transformation and correction, piece-wise linear transform. [1]. 5.1
[2]. 3.2
2. Global histogram processing Histogram equalization, matching to specifications, image contrast and histogram statistics, modality of histogram. [1]. 5.1
[2]. 3.3
3. Local histogram processing Locally adaptive histogram equalization (LAHE) and Contrast-limited adaptive histogram equalization (CLAHE). DOI: 10.1109/ VBC.1990.109340
4. Dynamic and brightness preserving histogram processing Bi-histogram equalization (BHE), brightness preserving dynamic histogram equalization (BPDHE) and faster implementation via. processing in fuzzy sets. DOI: 10.1109/ TCE.2010.5681130
5. Color equalization Vignetting correction, color constancy and auto white-balancing (AWB). DOI: 10.1109/ ISCE.2005.1502356

Module IV: Noise Models and Image Restoration in Spatial Domain
1. Noise models and properties Additive and multiplicative noise, spatial and frequency properties, stochastic models of noise and uncertainty, the Gaussian, Poisson, Rayleigh, Rician, Nakagami, Gumbel, etc. distributions, periodic and aperiodic noise. [1]. 2.3.6
[2]. 5.1 - 5.2
2. Estimation of noise properties Signal to noise ratio (SNR), root mean squared (RMS) value, mean squared error (MSE). [1]. 2.3.6
[2]. 5.1 - 5.2
3. Image quality assessment Universal image quality index, structural similarity, gradient structural similarity metric. DOI: 10.1109/ ICSMB.2010.5735353
4. Spatial linear and non-linear filtering via convolution Mean (average) filter, weighted average filter, sharpening filters, first order (gradient) and second order derivative (Laplacian) filtering, unsharp masking and high-boost filtering. [1]. 5.3.1
[2]. 3.5 - 3.7
5. Adaptive and non-linear spatial filtering Median, Frost's, homogeneous mask area, maximim local homogeneity filtering. DOI: 10.1109/ ICSMB.2010.5735353
6. Vector and order statistics filtering Alpha trimmed mean filter, general vector order statistics filter, sigma and Lee's filter. [2]. 5.3.2
7. Adaptive image restoration filtering Bilateral, adaptive bilateral filter, aggressive region growing, diffusion, non-local means filtering, inverse filtering, minimum mean-square error filtering, geometric mean filter. [1]. 5.4
[2]. 5.3.1, 5.3.3, 5.6 - 5.10

Module V: Image Restoration in Frequency Domain
1. High-frequency and periodic noise reduction Ideal low-pass filter, Butterworth filter, Gaussian weighted filter, band-pass and band-reject filters, notch and optimum notch filter. [1]. 5.3.8
[2]. 4.8, 4.10, 5.4
2. Image enhancement and restoration in frequency domain Ideal high-pass filter, Butterworth high-pass filter, inverse Gaussian weighted filter, Laplacian filter, unsharp masking, high-boost filtering, homomorphic filtering. [1]. 5.3.8
[2]. 4.9

Module VI: Image Segmentation
1. Intensity based segmentation Binary segmentation with fixed and dynamic threshold selection, histogram partitioning approach, iterative threshold selection, intensity statistics based approach (Otsu's method), information theory based threshold selection. [1]. 6.1
[2]. 10.3
2. Multiclass segmentation and evaluation Dynamic histogram partitioning, constained optimization for multi-threshold selection, multi-variable thresholding. [1]. 6.5
[2]. 10.3.6 - 10.3.8
3. Color image segmentation Mean-shift clustering, nearest neighbor search, skin color segmentation, optimum statistical classifiers, neural network models. [1]. 7.1, Ch 9
[2]. 6.7, 12.2
DOI: 10.1109/ 76.767122
4. Region growing, split and merge Region growing approach, region splitting and merging techniques for segmentation, simple linear iterative clustering (SLIC) superpixels. [1]. 6.3
[2]. 10.4 - 10.5
Tut: SLIC Superpixels
5. Edge detection Sobel, Prewitt and consistent gradient operators for edge detection, edge linking and Canny's approach, dynamic programming, Hough transform. [1]. 6.2
[2]. 10.2
6. Active contours and graph cuts for image segmentation Active contour models, snakes, image representation as a graph, max-flow min-cut algorithm. [1]. 7.2 - 7.7

Module VII: Mathematical Morphology
1. Preliminaries Binary morphology, grayscale operatiors and analogy with order-statistics. [1]. 13.1 - 13.2
[2]. 9.1, 9.6
2. Fundamental and some basic operators Erosion, dilation, opening, closing. [1]. 13.3 - 13.4
[2]. 9.2 - 9.3
3. Morphological processing algorithms Hit and miss transform, boundary extraction, region filling, thickening and thinning, skeleton extraction, prunning, connected component extraction and labeling, morphological watersheds. [1]. 13.5 - 13.7
[2]. 9.4 - 9.5

Module VIII: Textures and Wavelets
1. Co-occurrence matrices Basics of textures in optical and non-optical images, graylevel co-occurrence matrices (GLCM), fuzzy co-occurrence matrices. [1]. 15.1
[2]. 11.3.3
2. Texture features from Fourier transform Image spectrum, frequency components, periodic vs. aperiodic texture appearance models. [2]. 11.3.3
3. Kernel transforms for texture analysis Gabor functions, Laws' masks, local binary patterns (LBP). [2]. 7.3
DOI: 10.1109/ TPAMI.2002.1017623
4. Image pyramids and sub-bands Image decomposition, image pyramid, sub-band decomposition, Harr wavelets. [2]. 7.1
5. Multiresolution expansion of functions Series expansions and the scaling functions. [2]. 7.2
6. Wavelet transform 1D and 2D wavelet transform, fast wavelet transform, Hadamard and Daubechis' wavelets. [1]. 3.2.7
[2]. 7.4 - 7.6

Module IX: Object Representation and Description
1. Shape boundary descriptors Chain codes, polygon approximation, shape signatures, boundary segments, skeleton, shape number, Fourier descriptors and statistical moments. [1]. 8.2
[2]. 11.1 - 11.2
2. Region descriptors Topological descriptors, moments of 2D functions, principal components and the Karhunen-Loeve (KL) transform and the principal component analysis (PCA). [1]. 8.3
[2]. 11.3 - 11.5

Module X: Advanced Techniques for Image Processing and Machine Vision
1. HDR imaging High dynamic-range (HDR) imaging and photography through fusion of low dynamic-range images or exposure bracketed sequences. DOI: 10.1109/ PG.2007.17
Code | Images
2. EDF photography Extended depth-of-field (EDF) photography through fusion of limited depth-of-field images. DOI: 10.1109/ TIP.2012.2231087
Code
3. Object detection and tracking Background modeling, kernel based tracking, object path analysis. [1]. 16.5

Learning Resources
Conferences Int. Conf. Image Processing (ICIP), Computer Vision and Pattern Recognition (CVPR), Int. Conf. Comput. Vis. (ICCV), Eur. Conf. Comput. Vis. (ECCV), Asian Conf. Comput. Vis. (ACCV), ACM SIGGRAPH, ACM SIGGRAPH-Asia, Indian Conf. Vis., Graph., Image Process. (ICVGIP), Nat. Conf. Vis., Pat. Recog., Image Process., Graph. (NCVPRIPG)
Journals IEEE Trans. Image Process. (TIP), IEEE Trans. Pat. Anal., Mach. Intell. (T-PAMI), Int. J. Comput. Vis. (IJCV), IET Image Process. (IET-IP), ACM Trans. Graphics (TOG), IEEE Trans. Consumer Electron. (TCE), IEEE Trans. Circ., Sys., Video Tech. (TCSVT)
Matlab Image Processing Toolbox Comprehensive set of reference-standard algorithms, functions, and apps for image processing, analysis, visualization, and algorithm development in Matlab environment.
Open CV Open source computer vision library.
MeVisLab Medical image processing, analysis and visualization SDK.
Python(x,y) Python (2.7) based numerical computations, data analysis and data visualization, Qt graphical user interfaces and Spyder interactive scientific development environment. Can be of great use to develop image analytics tools and integrate then with MeVis projects or Android apps.
Android Studio and SDK Developer studio, IDE and SDK if you are interested to develop Android apps as part of your mini-project.
Tortoise SVN Version control utility for Windows implemented using the standard SVN. Helpful for managing (big / multiple file) medical software development projects.
MikTeX Up-to-date implementation of TeX/LaTeX and related programs for Windows (all current variants). Wiki for writing Hello world! using LaTeX. Template for submitting 1-Page report on the mini-project.
Grand Challenges in Biomedical Image Analysis Hub for Mini-Project ideas. Collection of the grand challenges in medical image analysis hosted at ISBI, MICCAI and other conferences and symposia. Good source for you to find a challenging research problem or to look for a revenue potenial product buildup.

Archives, Tutorials and Assignments
Old Question Papers Archive of old question papers and test papers.

Capstone Projects
The perfect group photo

Mentor: S. L. Happy
slhappy12345@gmail.com
While taking a group photo, undesirable actions such as someone looking elsewhere or closing their eyes or not smiling, are quite common situations. With advanced image processing and machine learning techniques, a perfect group photo can be generated using multiple photographs taken in a session.
Tentative steps may include (1) capturing multiple frames in a session, (2) detecting faces in every frame and labeling each person in all frames, (3) evaluating "goodness score" for each face (based on eye state, smile, frontal pose etc), (4) blending the best faces of each person into one photo.
The team has to try it on C++/Python/MATLAB first. If successfully implemented, they can go for android implementation.
Reference 1, Reference 2 || Dataset

Team: Shravya Pawar (13EE10046, shravs.pawar.1995@gmail.com), G.Sai Prajna Sri (13IE10012, saiprajnasri@gmail.com), Gopi Prasanth Ramineni (13EE10043, prashanthvarma001@gmail.com), Moenuddeen Ahmad Shaik (13EE10030, ahmad2609.as@gmail.com)
Face detection in digital photographs

Mentor: Abhijit Guha Roy
abhi4ssj@gmail.com
Implement a face detection algorithm using under various changes like illumination in variance, facial expression, tilt etc using PCA and LDA. Explore the possibility and generality of the methods and possible solutions. Implementation can be done in Python or Matlab.
Reference 1 || Dataset

Team: Aupendu Kar (16EE64R04, aupendu07@gmail.com), Akshay Sharma (16EE64R12, sharmaakshay0194@gmail.com)
Glint removal in an image

Mentor: Anirban Dasgupta
anirban1828@gmail.com
Glint is a major effect which causes the image to look visually displeasing. Glint also causes information loss or introduction of spurious information in an image. This is turn causes erroneous results when such an image is subjected to machine learning applications. The objective of the project is to develop an algorithm to remove glint in an image and use a suitable metric to evaluate the effectiveness of the algorithm.
Reference 1, Reference 2, Reference 3 || Dataset

Team: Anushree Basu (16AT91R17, ele.anushree09@gmail.com)
Sudoku solver

Mentor: S. L. Happy
slhappy12345@gmail.com
This project is to solve the sudoku puzzle through image processing algorithms. Given the image of the sudoku puzzle, the computer finds the answer to the puzzle and overlays the results on the image.
Tentative steps include (1) finding the puzzle boundaries, (2) extract the content of each cell and recognize the presence or absence of digits in it, (3) recognizing the digit using OCR, (4) solving the sudoku with suitable algorithm, (5) overlaying the results on camera image in real-time.
Reference 1

Team: Rahul Kumar Singh (13EE10065, rahulsinghk998@gmail.com), Vinit Kumar Chugh (13EE10055, chugh.vinit@gmail.com), Kubera Kalyan (13EE10026, kuberakalyan@gmail.com)
Gender classification of face images

Mentor: S. L. Happy
slhappy12345@gmail.com
Can we teach a computer to understand if the person sitting in front of it is a male or a female? This project aims at classifying the gender of a person using his/her face image.
Tentative steps include (1) real-time face detection, (2) facial feature extraction, (3) classification of the features into male/female.
Reference 1 || Dataset

Team: Appana S L Narasimha Rao (13EE10009, sairao210@gmail.com), Batchu S S S S Harish Babu (13EE10012, harish123.babu@gmail.com), Malayal Ramu Reddy (13EE10027, vijayramreddy690@gmail.com), G Sai Shyam (13IE10010, shyam.hoh@gmail.com)
Multi-target tracking for surveillance

Mentor: S. L. Happy
slhappy12345@gmail.com
The goal of this project is to estimate the number of persons in a video clip and estimate their speed and position.
Tentative steps include (1) human/object detection using background subtraction and/or HOG based object detection, (2) blob segmentation and tracking, (3) estimating position and speed of each individual.
Reference 1, Reference 2, Reference 3 || Dataset

Team: Satyarth Singh (13IE10034, satyarth2305@gmail.com), Khusboo Kumari (13IE10020, khushirj94@gmail.com), Parmod Kumar Singhal (13IE10026, parmodsinghal8@gmail.com)
Face identification

Mentor: S. L. Happy
slhappy12345@gmail.com
This project is about person identification from face images. The algorithm will take an image as input and tell the person's name if it is there in the database.
Tentative steps include (1) face detection, (2) facial feature extraction, (3) projecting facial features into higher dimensional plane using KPCA, (4) classification using SVM/NN/RF.
Reference 1, Reference 2 || Dataset

Team: Himanshu Mudgal (16EE64R15, mudgalhimanshu93@gmail.com), Yogesh Garg (16EE64R13, y.garg3892@gmail.com), Hemant Namdev (16EE64R17, namdev2611@gmail.com)
Gesture-based music synthesis

Mentor: S. L. Happy
slhappy12345@gmail.com
The project aims at real-time music synthesis base on gesture. To make music, what you need to do is to wave your hands like a choral director at the camera.
Tentative steps include (1) finger tip detection (blob analysis), (2) tracking finger tip and obtaining its location (x,y) in webcam images, (3) producing a tune of certain frequency and intensity based on the (x,y) coordinates, (4) the real-time implementation.
Reference 1, Reference 2 || Dataset

Team: Anirud Thyagharajan (12EE35011, anirudt@gmail.com)
Sanskrit character recognition

Mentor: Shubhobrata Bhattacharya
emailshubho@gmail.com
Sanskrit is the traditional language of India. Various languages find its origin from the Sanskrit. The lack of efficient solutions for reading the scripts of Sanskrit has hampered information extraction from a large body of documents of cultural and historical importance. Sanskrit Character contains complicated curves & various shapes. So recognition of Sanskrit characters is an interesting task for Image processing and Machine learning. The whole project can be stated under the steps of: acquisition, feature extraction, classification and deciphering the meaning. Availability of separate data set for Sanskrit can be overcome due to the similarity of script with Hindi.
Reference 1 || Dataset

Team: Akshit Mantri (13EE35009, akshit.mantri@gmail.com), Suryateja Chunduru (13EE10017, chunduru.suryateja28@gmail.com), Meghana GL (13IE10013, meghana.gl.28@gmail.com), Arun Kumar Patro (13EE35026, arun.kumar.patro@gmail.com)
Object removal by inpainting

Mentor: Rachana Sathish
rachana.sathish@gmail.com
With the gaining popularity of digital photography, image manipulation tools are in much demand. Image inpainting is a technique by which one can remove objects, fill regions and also remove noises and artifacts. In this project, students are expected to implement two or three state of the art methods for inpainting and compare them.
Reference 1, Reference 2, Reference 3 || Dataset

Team: Yash Pal Mittal (09EE3522, yashpalmittal91@gmail.com)
American sign language alphabet recognition

Mentor: Kaustuv Mishra
kaustuvmishra293@gmail.com
Human gesture recognition plays a key role in human-computer interaction. It can used in remote control of robots, smart home systems etc. The ultimate purpose of sign language recognition systems is to build automated systems that are able recognize signs and convert them into text or even speech. This could ideally lead to a translation system to communicate with the deaf people. Students undertaking this project will have to apply image processing algorithms to develop a framework that can recognize the gesture for English alphabets from images.
Reference 1, Reference 2, Reference 3 || Dataset

Team: Rishabh Kumar Shrivastava (13EE35012, rishabh.shrivastava101@gmail.com), Santosh Kumar (13EE35011, santoshkumar1t3@gmail.com), Susheel Kumar Dighade (13EE35021, susheeldighade@gmail.com)
Face recognition in low-resolution images

Mentor: Shubhobrata Bhattacharya
emailshubho@gmail.com
Face recognition research has remained to be a successful domain of research for more than three decades and many promising practical face recognition systems have been developed. In most of the cases it is assumed that the face image is taken as at the will of the subject and contains prominent information for recognition. Studies showed that minimum resolution required for face recognition is between 32x32 and 64x64 for existing algorithms. However, in many real life applications fail to provide face mages of sufficient resolution, such as small-scale stand-alone camera applications in banks and supermarkets, large-scale multiple networked close-circuit television (CCTV) in law enforcement applications in public streets, etc. Recognition of such a very low-resolution face image is called low resolution (LR) face recognition problem.
Reference 1, Reference 2 || Dataset

Team: Roshan Pati (13EE10062, rshn.pt96@gmail.com), Shubham Agrawal (13EE10058, shubham49908@gmail.com), Sidhant Gupta (13EE10048, siddhantharshit@gmail.com), Borkar Nihal Ravi (13EE10016, nborkar45@gmail.com)
Edge preserving filter and its impacts

Mentor: Sri Phani Krishna Karri
phani.moresmiles@gmail.com
Classical filtering techniques involve suppression of noise through smoothing the images based on a filter. Such filtering techniques commonly results in smoothing of edges leading to reduction of contrast. The filter weights should change on the fly based on the local image information so edges are retained and other regions are smoothened. The project is aimed at study of an adaptive filter and understanding the governing factors namely amount of noise, filter size, etc.
Reference 1, Reference 2, Reference 3 || Dataset
Image recolorization for the color-blind

Mentor: Sumit Agrawal
sumit@research.skincurate.com
Color blindness affects roughly ten percent of human males. It is possible for a woman to be color blind, however, because the main form of color blindness manifests as a defect in the X chromosome, most color blind individuals are men. Of those diagnosed with color blindness, over ninety-nine percent of them suffer from some sort of red-green deficiency, where they are unable to distinguish well between red and green. The goal of this project is to design and implement an image processing algorithm to help red-green color blind individuals perceive color diversity in digital images.
Reference 1, Reference 2, Reference 3 || Dataset

Team: Jyotsna Singh (13EE10023, singh72jyotsna@gmail.com), Neha Aggarwal (13EE10031, nehagoyaln@gmail.com), Abhilasha Bagariya (13EE10001, abhilasha.iitkgp@gmail.com), Abhinav Sharma (13IE10030, abhinavs01858@gmail.com)

Pedagogical Objectives
The aim is to teach students fundamentals of digital image processing. It would be beneficial to students opting for specialization in machine vision, graphics and animation, media design, medical imaging instrument design, medical imaging, medical visualization, robotics, augmented reality and gaming, who can use the gained skills in order to develop newer technological innovations and regularize their high-throughput translation and usage. On completion of the course, a student would be able to:
1. Explain and discuss the scientific principles of digital image formation, energy interaction as basis of image sensing, inter-relation between image appearance and objects in real world, quantitative approaches, multi-scale and multi-resolution relation, graphics, visualization and augmented reality.
2. Demonstrate the ability of analyzing images using their foundations of linear algebra, graph based and machine learning based approaches.
3. Design and develop new techniques for improving machine vision based workflow with incorporation of digital image processing and analysis in regular industrial and other usage.