Computer Vision with the OpenCV Library
Learning OpenCV puts you in the middle of the rapidly expanding field of computer vision. Written by the creators of the free open source OpenCV library, this book introduces you to computer vision and demonstrates how you can quickly build applications that enable computers to "see" and make decisions based on that data.
Computer vision is everywhere-in security systems, manufacturing inspection systems, medical image analysis, Unmanned Aerial Vehicles, and more. It stitches Google maps and Google Earth together, checks the pixels on LCD screens, and makes sure the stitches in your shirt are sewn properly. OpenCV provides an easy-to-use computer vision framework and a comprehensive library with more than 500 functions that can run vision code in real time.
Learning OpenCV will teach any developer or hobbyist to use the framework quickly with the help of hands-on exercises in each chapter. This book includes:
- A thorough introduction to OpenCV
- Getting input from cameras
- Transforming images
- Segmenting images and shape matching
- Pattern recognition, including face detection
- Tracking and motion in 2 and 3 dimensions
- 3D reconstruction from stereo vision
- Machine learning algorithms
Getting machines to see is a challenging but entertaining goal. Whether you want to build simple or sophisticated vision applications, Learning OpenCV is the book you need to get started.
"This library is useful for practitioners, and is an excellent tool for those entering the field: it is a set of computer vision algorithms that work as advertised." — William T. Freeman, Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology
Artificial Intelligence: A Modern Approach (AIMA) is a university textbook on artificial intelligence, written by Stuart J. Russell and Peter Norvig. It was first published in 1995 and the third edition of the book was released 11 December 2009. It is used in over 1100 universities worldwide and has been called "the most popular artificial intelligence textbook in the world". It is considered the standard text in the field of artificial intelligence.
The book is intended for an undergraduate audience but can also be used for graduate-level studies with the suggestion of adding some of the primary sources listed in the extensive bibliography.
Algorithms of the Intelligent Web is an example-driven blueprint for creating applications that collect, analyze, and act on the massive quantities of data users leave in their wake as they use the web. You'll learn how to build Amazon- and Netflix-style recommendation engines, and how the same techniques apply to people matches on social-networking sites. See how click-trace analysis can result in smarter ad rotations. With a plethora of examples and extensive detail, this book shows you how to build Web 2.0 applications that are as smart as your users.
"Unequivocally outstanding — this is the best technical book I have read all year." -- Robert Hanson, Quality Technology Services
For undergraduate or advanced undergraduate courses in Classical Natural Language Processing, Statistical Natural Language Processing, Speech Recognition, Computational Linguistics, and Human Language Processing. An explosion of Web-based language techniques, merging of distinct fields, availability of phone-based dialogue systems, and much more make this an exciting time in speech and language processing. The first of its kind to thoroughly cover language technology - at all levels and with all modern technologies - this text takes an empirical approach to the subject, based on applying statistical and other machine-learning algorithms to large corporations. The authors cover areas that traditionally are taught in different courses, to describe a unified vision of speech and language processing. Emphasis is on practical applications and scientific evaluation. An accompanying Website contains teaching materials for instructors, with pointers to language processing resources on the Web.
This is the first textbook on pattern recognition to present the Bayesian viewpoint. The book presents approximate inference algorithms that permit fast approximate answers in situations where exact answers are not feasible. It uses graphical models to describe probability distributions when no other books apply graphical models to machine learning. No previous knowledge of pattern recognition or machine learning concepts is assumed. Familiarity with multivariate calculus and basic linear algebra is required, and some experience in the use of probabilities would be helpful though not essential as the book includes a self-contained introduction to basic probability theory.
Programming Game AI by Example provides a comprehensive and practical introduction to the “bread and butter” AI techniques used by the game development industry, leading the reader through the process of designing, programming, and implementing intelligent agents for action games using the C++ programming language. Techniques covered include state- and goal-based behavior, inter-agent communication, individual and group steering behaviors, team AI, graph theory, search, path planning and optimization, triggers, scripting, scripted finite state machines, perceptual modeling, goal evaluation, goal arbitration, and fuzzy logic.
Statistical approaches to processing natural language text have become dominant in recent years. This foundational text is the first comprehensive introduction to statistical natural language processing (NLP) to appear. The book contains all the theory and algorithms needed for building NLP tools. It provides broad but rigorous coverage of mathematical and linguistic foundations, as well as detailed discussion of statistical methods, allowing students and researchers to construct their own implementations. The book covers collocation finding, word sense disambiguation, probabilistic parsing, information retrieval, and other applications.
The first edition, published in 1973, has become a classic reference in the field. Now with the second edition, readers will find information on key new topics such as neural networks and statistical pattern recognition, the theory of machine learning, and the theory of invariances. Also included are worked examples, comparisons between different methods, extensive graphics, expanded exercises and computer project topics. An Instructor's Manual presenting detailed solutions to all the problems in the book is available from the Wiley editorial department.
This is the first comprehensive treatment of feed-forward neural networks from the perspective of statistical pattern recognition. After introducing the basic concepts, the book examines techniques for modeling probability density functions and the properties and merits of the multi-layer perceptron and radial basis function network models. Also covered are various forms of error functions, principal algorithms for error function minimalization, learning and generalization in neural networks, and Bayesian techniques and their applications. Designed as a text, with over 100 exercises, this fully up-to-date work will benefit anyone involved in the fields of neural computation and pattern recognition.
Computer Vision: A Modern Approach, 2e, is appropriate for upper-division undergraduate- and graduate-level courses in computer vision found in departments of Computer Science, Computer Engineering and Electrical Engineering.
This textbook provides the most complete treatment of modern computer vision methods by two of the leading authorities in the field. This accessible presentation gives both a general view of the entire computer vision enterprise and also offers sufficient detail for students to be able to build useful applications. Students will learn techniques that have proven to be useful by first-hand experience and a wide range of mathematical methods
Learn how AI experts create intelligent game objects and characters with this first volume in the AI Game Programming Wisdom series. This unique collection of articles gives programmers and developers access to the insights and wisdom of over thirty AI pros. Each article delves deep into key AI game programming issues and provides insightful new ideas and techniques that can be easily integrated into your own games. Everything from general AI architectures, rule based systems, level-of-detail AI, scripting language issues, to expert systems, fuzzy logic, neural networks, and genetic algorithms are thoroughly covered. If you're a game programmer (AI/logic, front-end, user interface, tools, graphics, etc.) this comprehensive resource will help you take your skills and knowledge to the next level.
Design Patterns in Java™ gives you the hands-on practice and deep insight you need to fully leverage the significant power of design patterns in any Java software project. The perfect complement to the classic Design Patterns, this learn-by-doing workbook applies the latest Java features and best practices to all of the original 23 patterns identified in that groundbreaking text.
Drawing on their extensive experience as Java instructors and programmers, Steve Metsker and Bill Wake illuminate each pattern with real Java programs, clear UML diagrams, and compelling exercises. You'll move quickly from theory to application—learning how to improve new code and refactor existing code for simplicity, manageability, and performance.
Analyzing Text with the Natural Language Toolkit
This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.
Douglas Hofstadter's book is concerned directly with the nature of `maps` or links between formal systems. However, according to Hofstadter, the formal system that underlies all mental activity transcends the system that supports it. If life can grow out of the formal chemical substrate of the cell, if consciousness can emerge out of a formal system of firing neurons, then so too will computers attain human intelligence. Godel, Escher, Bach is a wonderful exploration of fascinating ideas at the heart of cognitive science: meaning, reduction, recursion, and much more.
Blondie24 is an artificial intelligence checkers-playing computer program named after the screen name used by a team led by David B. Fogel. The purpose was to determine the effectiveness of an artificial intelligence checkers-playing computer program.
Mahout in Action is a hands-on introduction to machine learning with Apache Mahout. Following real-world examples, the book presents practical use cases and then illustrates how Mahout can be applied to solve them. Includes a free audio- and video-enhanced ebook.
Today’s Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then use the uncovered patterns to predict future data. This textbook offers a comprehensive and self-contained introduction to the field of machine learning, based on a unified, probabilistic approach.
The coverage combines breadth and depth, offering necessary background material on such topics as probability, optimization, and linear algebra as well as discussion of recent developments in the field, including conditional random fields, L1 regularization, and deep learning. The book is written in an informal, accessible style, complete with pseudo-code for the most important algorithms. All topics are copiously illustrated with color images and worked examples drawn from such application domains as biology, text processing, computer vision, and robotics. Rather than providing a cookbook of different heuristic methods, the book stresses a principled model-based approach, often using the language of graphical models to specify models in a concise and intuitive way. Almost all the models described have been implemented in a MATLAB software package—PMTK (probabilistic modeling toolkit)—that is freely available online. The book is suitable for upper-level undergraduates with an introductory-level college math background and beginning graduate students.
For the countless tasks involved in creating a game engine there are an equal number of possible solutions. This text is a hands-on, comprehensive resource packed with a variety of game programming algorithms written by experts from the game industry. From animation and artificial intelligence to Z-buffering, lighting calculations, weather effects, curved surfaces and mutliple layer Internet gaming, to music and sound effects, all of the major techniques needed to develop a competitive game engine are covered. “Game Programming Gems” is written in a style which should be accessible to individuals with a range of expertise levels. All of the source code for each algorithm is included and can be used by advanced programmers immediately. For aspiring programmers, there is a detailed tutorial to work hrough before attempting the code, and suggestions for possible modifications and optimizations are included as well.
This third edition is a revised and expanded version of Winston and Horn's best-selling introduction to the LISP programming language and to LISP-based applications, many of which are possible as a result of advances in Artificual Intelligence technology.
Lisp is often thought of as an academic language, but it need not be. This is the first book that introduces Lisp as a language for the real world.
Practical Common Lisp presents a thorough introduction to Common Lisp, providing you with an overall understanding of the language features and how they work. Over a third of the book is devoted to practical examples, such as the core of a spam filter and a web application for browsing MP3s and streaming them via the Shoutcast protocol to any standard MP3 client software (e.g., iTunes, XMMS, or WinAmp). In other "practical" chapters, author Peter Seibel demonstrates how to build a simple but flexible in-memory database, how to parse binary files, and how to build a unit test framework in 26 lines of code.
AI Game Programming Wisdom 2, the second volume in this cutting-edge series, is packed with all new tricks, techniques, algorithms, architectures, and philosophies all written by industry experts! The wealth of knowledge and expertise in this volume is sure to surpass your expectations. As with the first volume, this book is designed to provide practical advice for building state-of-the-art game AI for commercial games; however, it also strives to help you look forward to leading-edge techniques that will be critical in future explorations. AI Game Programming Wisdom 2 provides advances, discoveries, and triumphs that will influence and drive game AI for the next decade. The breadth of experience and diverse backgrounds of the authors make this a truly global, cross-sectional resource for game AI. The book is divided into twelve comprehensive sections, including an all new speech recognition and dialogue section. There is also coverage of a wider variety of game genres and a cumulative index is included for easy cross referencing between volumes. This new volume alone is an indispensable tool, but together with volume 1, these books form a remarkable collection that no game AI programmer should be without!
Learn to Program in Lisp, One Game at a Time!
Lisp has been hailed as the world’s most powerful programming language, but its cryptic syntax and academic reputation can be enough to scare off even experienced programmers. Those dark days are finally over — Land of Lisp brings the power of functional programming to the people!
With his brilliantly quirky comics and out-of-this-world games, longtime Lisper Conrad Barski teaches you the mysteries of Common Lisp. You’ll start with the basics, like list manipulation, I/O, and recursion, then move on to more complex topics like macros, higher order programming, and domain-specific languages. Then, when your brain overheats, you can kick back with an action-packed comic book interlude!
Along the way you’ll create (and play) games like Wizard Adventure, a text adventure with a whiskey-soaked twist, and Grand Theft Wumpus, the most violent version of Hunt the Wumpus the world has ever seen.
Intended both as a text for advanced undergraduates and graduate students, and as a key reference work for AI researchers and developers, Logical Foundations of Artificial Intelligence is a lucid, rigorous, and comprehensive account of the fundamentals of artificial intelligence from the standpoint of logic.
The first section of the book introduces the logicist approach to AI--discussing the representation of declarative knowledge and featuring an introduction to the process of conceptualization, the syntax and semantics of predicate calculus, and the basics of other declarative representations such as frames and semantic nets. This section also provides a simple but powerful inference procedure, resolution, and shows how it can be used in a reasoning system.
The next several chapters discuss nonmonotonic reasoning, induction, and reasoning under uncertainty, broadening the logical approach to deal with the inadequacies of strict logical deduction. The third section introduces modal operators that facilitate representing and reasoning about knowledge. This section also develops the process of writing predicate calculus sentences to the metalevel--to permit sentences about sentences and about reasoning processes. The final three chapters discuss the representation of knowledge about states and actions, planning, and intelligent system architecture.
End-of-chapter bibliographic and historical comments provide background and point to other works of interest and research. Each chapter also contains numerous student exercises (with solutions provided in an appendix) to reinforce concepts and challenge the learner. A bibliography and index complete this comprehensive work.
AI Game Programming Wisdom 3, is the all new volume in this indispensable series. Packed with the insights of industry pros, the book provides new tricks, techniques, algorithms, architectures, and approaches to help you avoid redundancy and save valuable programming time. As with the previous volumes, this book is designed to provide practical advice for building state-of-the-art game AI for the games of today and tomorrow.
In this volume, section editors have also been added to lend their expertise and add their insights to the techniques covered. AI Game Programming Wisdom 3 provides advances, discoveries, and techniques that will affect the direction and use of game AI for the next generation of games. The breadth of experience and diverse backgrounds of the authors make this a truly global, cross-sectional resource for game AI. Volume 3 is divided into eight comprehensive sections, and a cumulative index is included for easy cross referencing between all three volumes. The book also includes a CD-ROM (Win) with material to augment the articles, including source code and demos, along with related articles, tutorials, Web resources, and color images. The AI Game Programming Wisdom series is a remarkable collection that no game AI programmer should be without!
Introduction to Neural Networks for Java, Second Edition, introduces the Java programmer to the world of Neural Networks and Artificial Intelligence. Neural network architectures, such as the feedforward, Hopfield, and self-organizing map architectures are discussed. Training techniques, such as backpropagation, genetic algorithms and simulated annealing are also introduced.
Practical examples are given for each neural network. Examples include the traveling salesman problem, handwriting recognition, financial prediction, game strategy, mathematical functions, and Internet bots. All Java source code is available online for easy downloading.
Robotics is becoming an increasingly popular field for hobbyists and professionals alike. The cost of the mechanics and electronics required to build a robot are low enough that almost anybody can afford it. The hardware that used to require government funding or a large university is now available to the average person. At the same time, programming is becoming a more common skill. This book combines the most sophisticated parts of robotics and programming to fill a real gap in available information. Most robotics books today use microcontrollers as the “brains” of the robots. This approach is fine for smaller, less expensive projects, but has serious limitations. When attempting to build a robot with sophisticated movements, navigation abilities, vision, and picture-capturing abilities, it is better to use a single board computer (SBC) such as Linux as the controller.
The Essence of Neural Networks is designed to be a first course on neural networks for undergraduate students, with the mathematics contained to a minimum. The book's main aim is to cover the basic concepts, with the key neural network models explored sufficiently deeply to allow a competent programmer to implement the networks in a language of their choice. The first six chapters cover the main neural models that are essential for a fundamental grounding in the subject, and the last two chapters are devoted to an overview of some of the links being developed between neural networks and traditional AI.
Welcome to the latest volume of AI Game Programming Wisdom! AI Game Programming Wisdom 4 includes a collection of more than 50 new articles featuring cutting-edge techniques, algorithms, and architectures written by industry professionals for use in commercial game development. Organized into 7 sections, this comprehensive volume explores every important aspect of AI programming to help you develop and expand your own personal AI toolbox. You'll find ready-to-use ideas, algorithms, and code in all key AI areas including general wisdom, scripting and dialogue, movement and pathfinding, architecture, tactics and planning, genre specific, and learning and adaptation. New to this volume are articles on recent advances in realistic agent, squad, and vehicle movement, as well as dynamically changing terrain, as exemplified in such popular games as Company of Heroes.You'll also find information on planning as a key game architecture, as well as important new advances in learning algorithms and player modeling. AI Game Programming Wisdom 4 features coverage of multiprocessor architectures, Bayesian networks, planning architectures, conversational AI, reinforcement learning, and player modeling.These valuable and innovative insights and issues offer the possibility of new game AI experiences and will undoubtedly contribute to taking the games of tomorrow to the next level.
The Complete Guide to Creating and Structuring Intelligent Games Programs
How Computers Learn to Play Games of Strategy This is book is for anyone who has ever tried to match wits with a computer in chess, bridge, or any other game requiring long-range strategy and studied decisions. If you're not a pro, chances are you've been defeated by a machine - and impressed at its uncanny ability to outmaneuver humans. In Computer Gamesmanship, David Levy, an International Chess Master and producer of intelligent computer games, unravels the mysteries of how computers successfully mimic strategic thinking and play complex games. In jargon-free language, Levy describes the important principles and techniques applicable to any game of strategy-such as decision trees, alpha-beta algorithms, minimax searches, and evaluation functions-and explains how even highly advanced strategies can be reduced to relatively simple procedures that a home computer can perform. He then illustrates and elaborates upon them in extensive discussions of the most popular and successful programs for chess, bridge, poker, Go, Othello, and many others. Computer Gamesmanship is a unique introduction and insider's guide to the most challenging games you can play, or create, on your computer. "This is a simply written and serious little book about how computers go about playing games.... (Computer Gamesmanship] leaves the reader with a sense of admiration for the stratagems of computer programmers' '