CS 332 Programming Language Concepts

Total Page:16

File Type:pdf, Size:1020Kb

CS 332 Programming Language Concepts CS 332 Programming Language Concepts Lecture 12 – Alternative Language Examples (Digital Media Pipeline Processing with Halide) April 7, 2017 Sam Siewert Reminders Exercise #4, Turned in, Grading in Progress Exercise #5 Exercise #6 is your Final Report Exam #2, Last Day of Class, April 27, Review Tues Before Final Exam – Your Presentation – Team or Individual Analysis or Mini-Alternate Programming Language – Session #1 (12:30-2:30PM 4/29) – Session #2 (7:30-9:30PM 4/29) Sam Siewert 2 Major Concepts – Post Production Digital Video Frame Processing Pipeline – Movie! 1. Acquire, Decode, or Read Frame Files 2. Apply Transforms – Simple (Brightness), Convolution (Edge Enhancement), Color Edit, … 3. Add CGI – Generate Computer Generated Imagery with Rendering 4. Composite Frame with Alpha Blending or Green Screen Human Characters into CGI Background 5. Encode Frames into MPEG Linux Tools Used Today – ffmpeg a.k.a avconv, OpenCV, Pixie (NC- Renderman), Unity 3D, Python Scripting to Coordinate file-to-tool-to- file RenderMan NC Renderman, (Scene Unity, Other CG Description) MPEG Raw Composite ffmpeg Frames OpenCV Frames ffmpeg Sam Siewert 3 Major Concepts – Video Analytics Computer Vision Pipeline – Find Bad Guy! 1. Acquire, Decode, or Read Frame Files 2. Apply Transforms – Simple (Brightness), Convolution (Edge Enhancement), False Color, Segment, 3-D Correspondence, SIFT, AdaBoost 3. Match to Recognition Database (Facial) 4. Present to User Linux Tools Used Today – ffmpeg a.k.a avconv, OpenCV, Python Scripting to Coordinate file-to-tool-to-file MPEG ffmpeg Raw Frames OpenCV Multi- MPEG ffmpeg core Sam Siewert 4 Observations APIs Support Building Tools Many Tools Lead to File to File Processing Pipelines File to File is Much Slower than Buffer to Buffer However, File to File Scales with Clusters! Buffer to Buffer Scales with Clusters With MPI or Shared Memory Multi-Core Could Scripting Coordination of File to File Be Replaced with a Language? Could the Language Optimize Use of Buffers (Locality) and Parallel and Vector Processing Hardware Features? Frees Programmer to Explore Options Halide – Potential Option Sam Siewert 5 Brighten, Contrast Transform {P} = clamp[ {Q}*alpha + beta] – Very Simple – Scale Each Pixel – Brightness Increase/Decrease – Bias Each Pixel – Contrast Increase/Decrease – Make Sure Result Does Not Exceed Saturation Compare C++ OpenCV API and Halide C++ Extension Sam Siewert 6 C Code – Is It Ugly? Over-specified? #define PIXIDX ((i*col*chan)+(j*chan)+k) #define SAT (255) void main(int argc, char *argv[]) { char header[512]; unsigned char img[640*480*3], newimg[640*480*3]; int bufflen, hdrlen; unsigned row=0, col=0, chan=0, pix; int i, j, k; double alpha=1.25; unsigned char beta=25; header[0]='\0'; readppm(img, &bufflen, header, &hdrlen, &row, &col, &chan, argv[1]); for(i=0; i < row; i++) for(j=0; j < col; j++) for(k=0; k < chan; k++) { newimg[PIXIDX] = (pix=(unsigned)((img[PIXIDX])*alpha)+beta) > SAT ? SAT : pix; } writeppm(newimg, bufflen, header, hdrlen, "brighter.ppm"); } Sam Siewert 7 OpenCV C++ API – Brighten/Contrast #include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> using namespace cv; using namespace std; double alpha=1.0; int beta=10; /* contrast and brightness control */ int main( int argc, char** argv ) { Mat image = imread( argv[1] ); // read in image file Mat new_image = Mat::zeros( image.size(), image.type() ); std::cout<<"* Enter alpha brighten factor [1.0-3.0]: ";std::cin>>alpha; std::cout<<"* Enter beta contrast increase value [0-100]: "; std::cin>>beta; Loop through Rows, // Do the operation new_image(i,j) = alpha*image(i,j) + beta for( int y = 0; y < image.rows; y++ ) Columns, and Color { Channels to Apply for( int x = 0; x < image.cols; x++ ) { Dereference Pixel at X,Y for( int c = 0; c < 3; c++ ) for each Color new_image.at<Vec3b>(y,x)[c] = saturate_cast<uchar>( alpha*( image.at<Vec3b>(y,x)[c] ) + beta ); } } namedWindow("Original Image", 1); namedWindow("New Image", 1); imshow("Original Image", image); imshow("New Image", new_image); waitKey(); return 0; } Sam Siewert 8 Halide – Brighten/Contrast // Adapted from Halide tutorial lesson 2. #include <Halide.h> using Halide::Image; #include "../apps/support/image_io.h" int main(int argc, char **argv) { Halide::Image<uint8_t> input = load<uint8_t>(argv[1]); Halide::Func brighter; Halide::Var x, y, c; Halide::Expr value = input(x, y, c); No loop specification, just transform function, so Halide can optimize locality, vector value = Halide::cast<float>(value); processing and multi-core features. value = value * 1.5f; value = Halide::min(value, 255.0f); value = Halide::cast<uint8_t>(value); brighter(x, y, c) = value; Halide::Image<uint8_t> output = brighter.realize(input.width(), input.height(), input.channels()); save(output, "brighter.png"); return 0; } Sam Siewert 9 Compiling Halide Code Extension to g++ E.g. build line from Halide/tutorial: g++ brighten.cpp -I ../include -L ../bin -lHalide -lpthread -ldl -lpng -o brighten Sam Siewert 10 Halide Overview http://halide-lang.org/ – Decouples Pipeline Specification (Buffer-to-Buffer) and Optimization – Built on LLVM and Clang – Extensions to C/C++ and Embedding – Extension to C++ with Use of Operator Overloading Watch Video Overview on Web Alternatives 1. APIs – OpenCV, OpenNI (for C++, Python, Java) 2. Interactive VHLLs – MATLAB CV Toolbox, Mathematica 3. IDL – Interactive Data Language Discuss – API vs. Specialize Language? Sam Siewert 11 Assignment #5 & 6 Help Data Structures and Algorithms You Already Know – Pick One You Implemented and Tested in an Imperative Procedural Language (Graphs, Trees, Lists, Numerical) – Re-implement in Functional or Declarative and Compare Pick New Application Domain (Image Processing, Cryptography, Simulation, Mathematics, AI) – Choose Interesting but Simple Algorithm (e.g. Image Blur, Sharpen, Brightness & Contrast, Gamma Correction, …) – Implement in Both Imperative Procedural and Alternative PL (Functional, Declarative, Specialized Scripting (R, Halide), or Anything other than OO Imperative) Present Comparison to Class in Person, and/or Capture and Record in PowerPoint [Slides Due Same Day as Exam] Sam Siewert 12 Sensor Fusion E.g. Algorithm Exploration with Images Sam Siewert 13 Sensor Fusion - Basic Concepts Visible Image Includes 3 Wavelengths – Red, 650 nanometers – Green, 510 nanometers – Blue, 475 nanometers Add Thermal LWIR Imaging – Thermal Image Intensity –False Color? – Match Resolution and Overlay with Visible? http://landsat.usgs.gov/gallery.php - Rodeo Chediski Fires, AZ Many Applications for LWIR Multi- Spectral – Cold Spots and Hot Spots - Ice, Fire Hazards – Vegetation, Soil Moisture – Animals and People – E.g. SEEK Imager, 206x156, 7200 to 13000 nanometers USGS Landsat Images Sam Siewert 14 Research vs. Development Vision, Objectives, Goals NSF (OMB) – Acquisition of Knowledge "Research" is defined as a systematic study – Requirements Less Emphasized, To Be directed toward fuller scientific knowledge or Determined understanding of the subject studied. Research is classified as either basic or applied, according – Proof-of-Concept and Prototypes to the objectives of the investigator. Emphasized – Repeatability of Results, Both Expected "Development" is the systematic use of and Unexpected knowledge and understanding gained from research directed toward the production of useful materials, devices, systems, or Experimental Research methods, including design and development – Emphasis on Validation & Verification of prototypes and processes. – Design of Experiments (PL Compare) DoD – Data Analysis Theoretical Research – Models – Mathematical, Logical, Statistical, Probability, Simulation – Analysis of Problems and Domains Sam Siewert https://www.rand.org/content/dam/rand/pubs/monograph_reports/MR1194/MR1194.appb.pdf 15 Simple View of Research [R&D] Acquisition of Knowledge – Theory or Experiment Defined by Existing Knowledge and Expectations Development Innovation / Adv. Tech Applied Basic • Well-known (standard) • Recombination of well-known • Expectations • Nobody knows • Specified application • Specified application • Misconceptions • No application • Assumptions • Specific Problem or Class Spectrum Sam Siewert 16 Learning Objectives Beyond Imperative Procedural Problem – Proliferation of PLs and Selection – “Which is Best for My Problem?”, “What Defines Best?” Hypothesis for Alternative PL Selection Collaboration (Alternate PL, Primary PL) –Declarative Functional – Lisp, Haskell, Scheme Dataflow – Verilog, VHDL, Halide Logic - Prolog Template – XSLT, XML – Imperative Scripted (Interpreted) – SQL, R, MATLAB, Python Procedural – C, Fortran Strong Typed OO – Java, Smalltalk, Ada 83 or 95 – Other (Propose to Instructor) Literature Review of Alternate PL and Applications Application Design and Prototype A-PL, P-PL Evaluation and Experiment Design Presentation of Comparative Results Sam Siewert 17 Scaffolding Assignments #1-#4 Practice – Imperative Procedural – Alternative Paradigm Compare Assignment #5 – Propose PL Comparison or Custom PL – Explore Design – Follow Interest in Alternative Approach – Choose One: 1. Design the Alternative for Proof-of-Concept Interpreter [Compiler] 2. Choose Imperative Procedural PL [OO or Modular/Structured] and Alternate Paradigm [Functional, Declarative Logic, Dataflow, Other?] Assignment #6 – Propose PL Comparison or Custom PL – Side by Side Application Comparison Implementations – Report on Results Final Oral Exam – Present Results to Class Sam Siewert 18.
Recommended publications
  • Abschlussarbeit Im Fachbereich Elektrotechnik & Informatik an Der
    Bachelorthesis Adriana Bostandzhieva Design and Implementation of System for Managing Training Data for Artificial Intelligence Algorithms Fakultät Technik und Informatik Faculty of Engineering and Computer Science Department Informations- und Department of Information and Elektrotechnik Electrical Engineering Adriana Bostandzhieva Design and Implementation of System for Managing Training Data for Artificial Intelligence Algorithms Bachelorthesisbased on the study regulations for the Bachelor of Engineering degree programme Information Engineering at the Department of Information and Electrical Engineering of the Faculty of Engineering and Computer Science of the Hamburg University of Aplied Sciences Supervising examiner : Prof. Dr. -Ing. Lutz Leutelt Second Examiner : Prof. Dr. Klaus Jünemann Day of delivery 3. Juli 2019 Adriana Bostandzhieva Title of the Bachelorthesis Design and Implementation of System for Managing Training Data for Artificial Intelli- gence Algorithms Keywords AI, training data, database, labels, video Abstract This paper is part of a pilot project of the Hamburg University of Applied Sciences. The project aims to utilise object detection algorithms and visual data to analyse complex road scenes. The aim of this thesis is to determine the best tool to use to label data for training artificial intelligence algorithms, to specify what data should be saved and to determine what database is to be used to save the data. The validity of the findings is proved by building a small prototype to showcase integration between the labelling tool and the database. Adriana Bostandzhieva Titel der Arbeit Entwicklung und Aufbau eines System zur Verwaltung von Trainingsdaten für Algo- rithmen der künstlichen Intelligenz Stichworte Trainingsdaten, Datenbanke, Video, KI Kurzzusammenfassung Diese Arbeit ist Teil eines Pilotprojekts der Hochschule für Angewandte Wissenschaf- ten Hamburg.
    [Show full text]
  • A 3D Interactive Multi-Object Segmentation Tool Using Local Robust Statistics Driven Active Contours
    A 3D interactive multi-object segmentation tool using local robust statistics driven active contours The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citation Gao, Yi, Ron Kikinis, Sylvain Bouix, Martha Shenton, and Allen Tannenbaum. 2012. A 3D Interactive Multi-Object Segmentation Tool Using Local Robust Statistics Driven Active Contours. Medical Image Analysis 16, no. 6: 1216–1227. doi:10.1016/j.media.2012.06.002. Published Version doi:10.1016/j.media.2012.06.002 Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:28548930 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA NIH Public Access Author Manuscript Med Image Anal. Author manuscript; available in PMC 2013 August 01. NIH-PA Author ManuscriptPublished NIH-PA Author Manuscript in final edited NIH-PA Author Manuscript form as: Med Image Anal. 2012 August ; 16(6): 1216–1227. doi:10.1016/j.media.2012.06.002. A 3D Interactive Multi-object Segmentation Tool using Local Robust Statistics Driven Active Contours Yi Gaoa,*, Ron Kikinisb, Sylvain Bouixa, Martha Shentona, and Allen Tannenbaumc aPsychiatry Neuroimaging Laboratory, Brigham & Women's Hospital, Harvard Medical School, Boston, MA 02115 bSurgical Planning Laboratory, Brigham & Women's Hospital, Harvard Medical School, Boston, MA 02115 cDepartments of Electrical and Computer Engineering and Biomedical Engineering, Boston University, Boston, MA 02115 Abstract Extracting anatomical and functional significant structures renders one of the important tasks for both the theoretical study of the medical image analysis, and the clinical and practical community.
    [Show full text]
  • Open Source Computer Vision-Based Layer-Wise 3D Printing Analysis
    Open Source Computer Vision-based Layer-wise 3D Printing Analysis Aliaksei L. Petsiuk1 and Joshua M. Pearce1,2,3 1Department of Electrical & Computer Engineering, Michigan Technological University, Houghton, MI 49931, USA 2Department of Material Science & Engineering, Michigan Technological University, Houghton, MI 49931, USA 3Department of Electronics and Nanoengineering, School of Electrical Engineering, Aalto University, Espoo, FI-00076, Finland [email protected], [email protected] Graphical Abstract Highlights • Developed a visual servoing platform using a monocular multistage image segmentation • Presented algorithm prevents critical failures during additive manufacturing • The developed system allows tracking printing errors on the interior and exterior Abstract The paper describes an open source computer vision-based hardware structure and software algorithm, which analyzes layer-wise the 3-D printing processes, tracks printing errors, and generates appropriate printer actions to improve reliability. This approach is built upon multiple- stage monocular image examination, which allows monitoring both the external shape of the printed object and internal structure of its layers. Starting with the side-view height validation, the developed program analyzes the virtual top view for outer shell contour correspondence using the multi-template matching and iterative closest point algorithms, as well as inner layer texture quality clustering the spatial-frequency filter responses with Gaussian mixture models and segmenting structural anomalies with the agglomerative hierarchical clustering algorithm. This allows evaluation of both global and local parameters of the printing modes. The experimentally- verified analysis time per layer is less than one minute, which can be considered a quasi-real-time process for large prints. The systems can work as an intelligent printing suspension tool designed to save time and material.
    [Show full text]
  • About This Document Opencv and Matlab Mex Files Recommended Knowledge General Concepts Mex Files
    1 About this document ABOUT THIS DOCUMENT This document was created as part of a final project for a BSc degree at the Academic College of Tel- Aviv Yaffo, by Rachely Esman and Yoad Snapir, under the supervision of Tal Hassner. As part of the project, we used Intel's OpenCV library, calling its functions from MATLAB. We found the subject tricky and thus decided to share the experience of our work with others describing the common pitfalls. You can use this document freely according to the copyrights noted below but under your sole responsibility. Rachely and Yoad. OPENCV AND MATLAB MEX FILES This guide will provide a quick walk through on compiling C++ OpenCV modules as MEX runtime files of MATLAB under: MS Visual Studio 2005 MATLAB 7.5.0 Windows 32bit And will probably be clear enough for other platforms / versions. RECOMMENDED KNOWLEDGE Good understanding of C++ Compilation and linkage concepts. DLL general usage Visual Studio 2005 environment Basic MATLAB and MEX files knowledge GENERAL CONCEPTS MEX FILES MEX files are actually simple .DLL files compiled with extension .MEXW32 using ordinary compilation tools provided with VS2005. Those .DLL files have a fixed entry point "mexFunction" with a fixed signature. (List of IN/OUT parameters) Follow this link to get an overview of MEX files and information on using them: http://www.mathworks.com/support/tech-notes/1600/1605.html#intro MEX files are compiled (and linked) from within the MATLAB environment using the following syntax: mex 'srcfile1.cpp' 'srcfile2.cpp' 'objfile1.obj' … Before compiling, you need to setup the compilation options using the command: Copyright © 2008 R.
    [Show full text]
  • Anastasia Tyurina [email protected]
    1 Anastasia Tyurina [email protected] Summary A specialist in applying or creating mathematical methods to solving problems of developing technologies. A rare expert in solving problems starting from the stage of a stated “word problem” to proof of concept and production software development. Such successful uses of an educational background in mathematics, intellectual courage, and tenacious character include: • developed a unique method of statistical analysis of spectral composition in 1D and 2D stochastic processes for quality control in ultra-precision mirror polishing • developed novel methods of detection, tracking and classification of small moving targets for aerial IR and EO sensors. Used SIFT, and SIRF features, and developed innovative feature-signatures of motion of interest. • developed image processing software for bioinformatics, point source (diffraction objects) detection semiconductor metrology, electron microscopy, failure analysis, diagnostics, system hardware support and pattern recognition • developed statistical software for surface metrology assessment, characterization and generation of statistically similar surfaces to assist development of new optical systems • documented, published and patented original results helping employers technical communications • supported sales with prototypes and presentations • worked well with people – colleagues, customers, researchers, scientists, engineers Tools MATLAB, Octave, OpenCV, ImageJ, Scion Image, Aphelion Image, Gimp, PhotoShop, C/C++, (Visual C environment), GNU development tools, UNIX (Solaris, SGI IRIX), Linux, Windows, MS DOS. Positions and Experience Second Star Algonumerixs – 2008-present, founder and CEO http://www.secondstaralgonumerix.com/ 1) Developed a method of statistical assessment, characterisation and generation of random surface metrology for sper precision X-ray mirror manufacturing in collaboration with Lawrence Berkeley National Laboratory of University of California Berkeley.
    [Show full text]
  • Downloadable At
    remote sensing Article LabelRS: An Automated Toolbox to Make Deep Learning Samples from Remote Sensing Images Junjie Li, Lingkui Meng, Beibei Yang, Chongxin Tao, Linyi Li and Wen Zhang * School of Remote Sensing and Information Engineering, Wuhan University, Wuhan 430079, China; [email protected] (J.L.); [email protected] (L.M.); [email protected] (B.Y.); [email protected] (C.T.); [email protected] (L.L.) * Correspondence: [email protected]; Tel.: +86-027-68770771 Abstract: Deep learning technology has achieved great success in the field of remote sensing pro- cessing. However, the lack of tools for making deep learning samples with remote sensing images is a problem, so researchers have to rely on a small amount of existing public data sets that may influence the learning effect. Therefore, we developed an add-in (LabelRS) based on ArcGIS to help researchers make their own deep learning samples in a simple way. In this work, we proposed a feature merging strategy that enables LabelRS to automatically adapt to both sparsely distributed and densely distributed scenarios. LabelRS solves the problem of size diversity of the targets in remote sensing images through sliding windows. We have designed and built in multiple band stretching, image resampling, and gray level transformation algorithms for LabelRS to deal with the high spectral remote sensing images. In addition, the attached geographic information helps to achieve seamless conversion between natural samples, and geographic samples. To evaluate the reliability of LabelRS, we used its three sub-tools to make semantic segmentation, object detection and image classification samples, respectively.
    [Show full text]
  • Machine Learning on Real and Artificial SEM Images
    A Workflow for Characterizing Nanoparticle Monolayers for Biosensors: Machine Learning on Real and Artificial SEM Images Adam Hughes1, Zhaowen Liu2, Mayam Raftari3, and M. E. Reeves4 1-4The George Washington University, USA ABSTRACT A persistent challenge in materials science is the characterization of a large ensemble of heterogeneous nanostructures in a set of images. This often leads to practices such as manual particle counting, and s sampling bias of a favorable region of the “best” image. Herein, we present the open-source software, t imaging criteria and workflow necessary to fully characterize an ensemble of SEM nanoparticle images. n i Such characterization is critical to nanoparticle biosensors, whose performance and characteristics r are determined by the distribution of the underlying nanoparticle film. We utilize novel artificial SEM P images to objectively compare commonly-found image processing methods through each stage of the workflow: acquistion, preprocessing, segmentation, labeling and object classification. Using the semi- e r supervised machine learning application, Ilastik, we demonstrate the decomposition of a nanoparticle image into particle subtypes relevant to our application: singles, dimers, flat aggregates and piles. We P outline a workflow for characterizing and classifying nanoscale features on low-magnification images with thousands of nanoparticles. This work is accompanied by a repository of supplementary materials, including videos, a bank of real and artificial SEM images, and ten IPython Notebook tutorials to reproduce and extend the presented results. Keywords: Image Processing, Gold Nanoparticles, Biosensor, Plasmonics, Electron Microscopy, Microsopy, Ilastik, Segmentation, Bioengineering, Reproducible Research, IPython Notebook 1 INTRODUCTION Metallic colloids, especially gold nanoparticles (AuNPs) continue to be of high interdisciplinary in- terest, ranging in application from biosensing(Sai et al., 2009)(Nath and Chilkoti, 2002) to photo- voltaics(Shahin et al., 2012), even to heating water(McKenna, 2012).
    [Show full text]
  • Automatic Methods for Detection of Midline Brain Abnormalities
    UNIVERSITAT POLITÈCNICA DE CATALUNYA (UPC) - BarcelonaTech UNIVERSITAT DE BARCELONA (UB) UNIVERSITAT ROVIRA I VIRGILI (URV) Master in Artificial Intelligence Master of Science Thesis AUTOMATIC METHODS FOR DETECTION OF MIDLINE BRAIN ABNORMALITIES Aleix Solanes Font FACULTAT D’INFORMÀTICA DE BARCELONA (FIB) FACULTAT DE MATEMÀTIQUES (UB) ESCOLA TÈCNICA SUPERIOR D’ENGINYERIA (URV) Supervisor: Co-supervisor: Laura Igual Muñoz Joaquim Radua Department of analysis and applied Mathematics, FIDMAG Research Foundation Universitat de Barcelona (UB) IoPPN (King’s College London) Karolinska Institutet (Stockholm) January 20, 2017 ACKNOWLEDGEMENTS I would like to thank my supervisors Laura Igual and Joaquim Radua for their continuous support in the elaboration of this work, for their patience, motivation and immense knowledge. Their guidance and advice helped me in all the time of development and writing of this thesis. Besides my supervisors, I would like to thank the rest of my colleagues from FIDMAG, Rai, Erick, Anton… for their insightful comments and encouragement, but also for incentivizing me to widen my approach from various perspectives. I would also sincerely thank to Carla, for all her love and support in life, and for her patience and empathy in good and bad moments. Last but not the least, I would like to thank my family: my parents and to my brother for supporting me spiritually throughout the steps of my life to arrive to the elaboration of this thesis. iii ABSTRACT Different studies have demonstrated an augmented prevalence of different midline brain abnormalities in patients with both mood and psychotic disorders. One of these abnormalities is the cavum septum pellucidum (CSP), which occurs when the septum pellucidum fails to fuse.
    [Show full text]
  • Image Search Engine Resource Guide
    Image Search Engine: Resource Guide! www.PyImageSearch.com Image Search Engine Resource Guide Adrian Rosebrock 1 Image Search Engine: Resource Guide! www.PyImageSearch.com Image Search Engine: Resource Guide Share this Guide Do you know someone who is interested in building image search engines? Please, feel free to share this guide with them. Just send them this link: http://www.pyimagesearch.com/resources/ Copyright © 2014 Adrian Rosebrock, All Rights Reserved Version 1.2, July 2014 2 Image Search Engine: Resource Guide! www.PyImageSearch.com Table of Contents Introduction! 4 Books! 5 My Books! 5 Beginner Books! 5 Textbooks! 6 Conferences! 7 Python Libraries! 8 NumPy! 8 SciPy! 8 matplotlib! 8 PIL and Pillow! 8 OpenCV! 9 SimpleCV! 9 mahotas! 9 scikit-learn! 9 scikit-image! 9 ilastik! 10 pprocess! 10 h5py! 10 Connect! 11 3 Image Search Engine: Resource Guide! www.PyImageSearch.com Introduction Hello! My name is Adrian Rosebrock from PyImageSearch.com. Thanks for downloading this Image Search Engine Resource Guide. A little bit about myself: I’m an entrepreneur who has launched two successful image search engines: ID My Pill, an iPhone app and API that identifies your prescription pills in the snap of a smartphone’s camera, and Chic Engine, a fashion search engine for the iPhone. Previously, my company ShiftyBits, LLC. has consulted with the National Cancer Institute to develop image processing and machine learning algorithms to automatically analyze breast histology images for cancer risk factors. I have a Ph.D in computer science, with a focus in computer vision and machine learning, from the University of Maryland, Baltimore County where I spent three and a half years studying.
    [Show full text]
  • Preserving Privacy in Structural Neuroimages
    Preserving Privacy in Structural Neuroimages Nakeisha Schimke, Mary Kuehler, and John Hale Institute of Bioinformatics and Computational Biology The University of Tulsa 800 South Tucker Drive Tulsa, Oklahoma 74104 Abstract. Evolving technology has enabled large-scale collaboration for neuroimaging data. For high resolution structural neuroimages, these data are inherently identifiable and must be given the same privacy con- siderations as facial photographs. To preserve privacy, identifiable meta- data should be removed or replaced, and the voxel data de-identified to remove facial features by applying skull stripping or a defacing algorithm. The Quickshear Defacing method uses a convex hull to identify a plane that divides the volume into two parts, one containing facial features and another the brain volume, and removes the voxels on the facial features side. This method is an effective alternative to existing solutions and can provide reductions in running time. Keywords: Medical image privacy, neuroimaging, de-identification, HIPAA. 1 Introduction The digitization of health records and medical images has transformed health- care and medical research. New technologies provide instant access to patient and subject data by automatically disseminating the information to healthcare providers and research collaborators. Expanded storage and transfer capabilities have made feasible the addition of medical images to these electronic records, but as the demand for capturing and storing images increases, so does the need for privacy measures. For shared data sets, the need for removing protected health information (PHI) is agreed upon, but the extent to which medical images con- stitute PHI is still debated. The Health Insurance Portability and Accountability Act (HIPAA) Privacy Rule [12] defines \full face photographic images and any comparable images" as PHI.
    [Show full text]
  • Red Hat Enterprise Linux 7 7.9 Release Notes
    Red Hat Enterprise Linux 7 7.9 Release Notes Release Notes for Red Hat Enterprise Linux 7.9 Last Updated: 2021-08-17 Red Hat Enterprise Linux 7 7.9 Release Notes Release Notes for Red Hat Enterprise Linux 7.9 Legal Notice Copyright © 2021 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • Visualocv: Refined Dataflow Programming Interface for Opencv
    Southern Adventist University KnowledgeExchange@Southern MS in Computer Science Project Reports School of Computing Summer 8-17-2020 VisualOCV: Refined Dataflow ogrPr amming Interface for OpenCV John Boggess [email protected] Follow this and additional works at: https://knowledge.e.southern.edu/mscs_reports Part of the Graphics and Human Computer Interfaces Commons, and the Programming Languages and Compilers Commons Recommended Citation Boggess, John, "VisualOCV: Refined Dataflow ogrPr amming Interface for OpenCV" (2020). MS in Computer Science Project Reports. 5. https://knowledge.e.southern.edu/mscs_reports/5 This Article is brought to you for free and open access by the School of Computing at KnowledgeExchange@Southern. It has been accepted for inclusion in MS in Computer Science Project Reports by an authorized administrator of KnowledgeExchange@Southern. For more information, please contact [email protected]. VISUALOCV: REFINED DATAFLOW PROGRAMMING INTERFACE FOR OPENCV by John R. W. Boggess A PROJECT DEFENSE Presented to the Faculty of The School of Computing at the Southern Adventist University In Partial Fulfilment of Requirements For the Degree of Master of Science Major: Computer Science Under the Supervision of Professor Hall Collegedale, Tennessee August 4, 2020 VisualOVC: Refined Dataflow Programming Interface for OpenCV Approved by: Professor Tyson Hall, Adviser Professor Scot Anderson Professor Robert Ord´o˜nez Date Approved VISUALOCV: REFINED DATAFLOW PROGRAMMING INTERFACE FOR OPENCV John R. W. Boggess Southern Adventist University, 2020 Adviser: Tyson Hall, Ph.D. OpenCV is a popular tool for developing computer vision algorithms; however, prototyping OpenCV-based algorithms is a time consuming and iterative process. VisualOCV is an open source tool to help users better understand and create computer vision algorithms.
    [Show full text]