=Paper= {{Paper |id=Vol-1452/paper9 |storemode=property |title=Imitation of Human Behavior in 3D-Shooter game |pdfUrl=https://ceur-ws.org/Vol-1452/paper9.pdf |volume=Vol-1452 |dblpUrl=https://dblp.org/rec/conf/aist/MakarovTT15 }} ==Imitation of Human Behavior in 3D-Shooter game== https://ceur-ws.org/Vol-1452/paper9.pdf
     Imitation of Human Behavior in 3D-Shooter Game

                  Makarov Ilya, Tokmakov Mikhail, Tokmakova Lada

                 National Research University Higher School of Economics,
                  Department of Data Analysis and Artificial Intelligence
                                  iamakarov@hse.ru
                               matokmakov@gmail.com
                              lrtokmakova@yandex.ru



       Abstract. There are many algorithms for 3D-shooter game artificial intelligence
       that are based on automatic target recognition with the help of ray casting, script-
       based event systems and many others. In such models game agents have an ad-
       vantage over human player because computers do not need time for enemy recog-
       nition and target aiming processes. The main goal of our research is to imitate a
       realistic enemy player under PC control, which acts similar to a human reaction.
       We consider such aspects of shooter in-game processes as visual recognition of
       players, the delay for the response on each game event and distributed strategies
       of decision making. The paper presents method of visual recognition of player's
       3D-model with the use of geometry knowledge of the three-dimensional maze
       and target sighting with respect to human motor reflexes. The implementation is
       made in Unreal Engine 4, which provides large variety of methods for program-
       ming game agents.


       Keywords: Game Artificial Intelligence, Neural Network, Visual Recognition,
       Sparse Network of Winnows, Boosting, Rule-based Systems.


1      Introduction
Entertainment industry provides a vast variety of different games, every time attempt-
ing to improve realism of virtual world. It involves modeling of an enemy under auto-
matic computer control (so called, BOT) having reaction that is similar to human reac-
tion. In fact, the user has to spend some time for enemy visual recognition, and adapt
motor reflexes for target sighting of proper level. These circumstances together with
the use of ray-casting algorithms allow an enemy to obtain immediate perfect target
aim without even small time delays and sighting errors.
   Multiple algorithms are presented to compensate BOT supremacy over human
player, such as simulated time delay to fire back, bad accuracy during shooting process,
almost infinite health level and infinite regeneration of human player and many other
methods to retain balance between entertainment and game challenge in virtual world.
We focus on creating game artificial intelligence agent for a 3-D shooter game imitating
human-like behavior.
   The article represents a new approach to the problem of creating realistic game agent
for 3D-shooter. We try to find a solution to the inverse problem using machine and




                                                  64
neural learning algorithms to obtain maximum likelihood estimators of target correc-
tion parameters and enemy detection. We also make statistical experiment to find cor-
responding clusters of such delays relative to skill-level of human player.
   Implementation is made using modern technologies of game agent modeling, which
allow us to combine different schemes and algorithms into one common behavior tree
algorithm, saving the properties of complementarity and interchangeability of the indi-
vidual modules for decision making models and different visual recognition patterns.
   The Blueprints visual scripting system in Unreal Engine 4 is a complete gameplay
scripting system based on the concept of using a node-based interface to create game-
play elements from within Unreal Editor.
   With the use of Blueprints, programmers can implement and modify any gameplay
element:

 Gameplay conditions and rules.
 Developing diverse meshes and Materials or character customization.
 New camera perspectives and change dynamically the camera view.
 Items - weapons, pickups, med kits, triggers, and others.
 Environments - create procedurally-generated items.

Blueprints combine the best properties of previous AI models and propose sufficient
interface to create complex models in short time.
   Finally, we may say that developers frequently use existing models of computer
player's behavior, which sometimes do not allow to achieve sufficient realism. In dif-
ferent games we may have texture issues, bad organized respawn, wanton shooting and
the worst – disadvantage of human player in comparison with game AI due to wide-
spread usage of engine algorithms in decision making algorithms. Our work is an at-
tempt to form our own pattern of AI, which will combine human and machine visual
perception and decision making models to implement human-like BOT.
   Real-time game play has always been major setback for AI in video games. If the
action continues arbitrary long, there will be no time to compute all possible actions
and future states. In order to achieve diverse BOT difficulty levels a specific model
should be constructed, providing computational part for:

 Confidence intervals for time delay and sighting accuracy using grade of visual
  recognition;
 Target sighting on fire recognition with adjusted parameters;
 Statistical model for the curves of the first (initial) and the second (correction) tar-
  geting accuracy and delays;
 Adaptation of shooting process with respect to recoil;
 Rule-based decision making system for priority actions with respect to a map of
  game events.

The first part of the paper is brief review of existing games. We analyze the history of
BOT developing and snow minuses of automatically visual recognition. The second
part of the article considers methods of image processing with the help of geometry




                                              65
knowledge of three-dimensional maze. We present a statistical prediction model to ob-
tain possible dangerous directions where an enemy appearance may occur more fre-
quently and we organize some data structure to process these frequencies as priority
goals for decision making module. The third part of our article describes basic algo-
rithms of visual recognition and their applications to our problem relative to practical
success in terms of time complexity and percent of successful enemy recognition. We
deal with the description of samples’ properties, and use neural network for frequencies,
obtained from the geometry of a maze, to increase the possibilities for enemy recogni-
tion in dangerous zones. It does improve the quality of recognition in difficult places
such as corners, box’s covers, and does not affect for enemy recognition in front of a
player, where the recognition method gives good results by itself. The next part of the
paper deals with the decision making model and represents a combination of two men-
tioned above approaches into one AI algorithm. The article ends with the description
of gaming process.


2      Brief Review of Existing 3D-shooters

The first “3-D action” was created in 1992 with the use of «Wolfenstein 3D» engine.
The game has the same name, and visualization of 3D map and models was achieved
by ray casting. This method emits one ray for each column of pixels, evaluates to see
whether it has intersection with a wall and draws textures creating a one-dimensional
Z-buffer. The game has widely popularized the genre on the PC and has found the basic
run-and-gun type for many subsequent first-person shooter games (FPS games).
   The game mentioned above was not as popular as its analog “Doom”, which was
developed in 1993. It was based on «Doom engine», which belongs to the same series
of engines like «Wolfenstein 3D». In comparison with Wolfenstein 3D the Doom en-
gine includes such features as non-perpendicular walls, full texture mapping of all sur-
faces, dynamic platforms and floors. In addition to ray casting the BSP tree technology
created by Bruce Naylor was used. The lifelike environment was achieved by using the
stereo sound system, which made it possible to quickly determine the direction and
distance of a sound effect made by an enemy or occasional environment event. The
player has to be on guard while he hears monsters’ roars, and receives additional
knowledge to find new areas in the form of sounds of some door which open remotely.
Enemies can also become aware of the player's presence by hearing distant gunshots.
There were also popular features of the Doom engine, such as the ability to create cus-
tom scenarios contributed significantly to the game's popularity.
   It was the first step of FPS gameplay evolution. Nowadays the market of computer
games is overcrowed. An artificial intelligence of many shooters has several shortcom-
ings because developers concentrate more efforts on visual effects and entertainment,
whereas BOT action can be not realistic. We shall now move to brief review of several
modern games relative to artificial intelligence models and their properties in the con-
text of setting goals for BOT.
   One of the most popular FPS games, "Call of duty: Ghosts", was published in 2013
[1]. Despite the high-quality graphic and large variety of cinematic effects CoD series




                                             66
continued modern tradition to publish AAA projects without sufficient testing proce-
dures. One's virtual players can shoot the ceiling trying to kill enemies, which are on
the floor above. Also, some adversaries can rest against the wall and not notice User in
two steps. There is also a famous bug migrating in the CoD series: after the player’s
death reloading last checkpoint activates all enemy AIs without even appearing of
player in the viewing angle. Some bugs appeared from wrong scripts, but many others
involve low-level command block and determined algorithms, which do not cover all
gameplay opportunities. One of the things that were highlighted during the Call of duty:
Ghosts presentation was the feature that fish AI moves out of the way when user gets
close. Actually, this feature is not even an innovation — it was nearly 20 years old!
   The so-called "NextGen" notion for next generation of games is apparently relevant
only for the graphical part of the games, but the vision of AI models is in creating tools
for different games and simple developer kit but not for peculiar game properties.
   "Counter-Strike: Global offensive" was developed in 2012. BOTs' interaction with
outside world is not realistic in some cases, for example, enemies can jump from the
second floor and their level of health will not change. However, to support the many
community-created maps, CS:Source and CS:Global Offensive include an automatic
mesh generation system. The first time you play a custom map with BOTs, the genera-
tion system will build a .nav file for that map. Depending on the size and complexity
of the map, this process may go for a few minutes to a few hours.
   The following steps occur during Navigation Mesh generation:

 Starting at a player spawn point, space for walking is sampled by "flood-filling"
  outwards from that spot, searching for adjacent walkable points
 Right-Angled Navigation Areas are built from the sampled data
 Hiding and Sniper spots are computed
 Encounter Spots and Approach Points are calculated (this can take awhile)
 Initial Encounter areas are computed

There are general mesh problems, for example, extraneous areas on stairs and ramps,
railings, preventing excessive jumping, dealing with rotating doors.
   BOTs will sometimes try to walk through the opened door brush from one nav area
to another and get stuck.
   Although mesh navigation had leading positions for a few years there were many
issues with moving scene, extreme position cases, so a new concept for programming
BOT action has appeared.
   Summing up, we see that automatically enemy detection can lead to different types
of errors in shooter games. It does not represent realism, for instance, identification of
enemies through the walls and appearance of BOT in textures. The research aims to
create own detection module in order to avoid mentioned above mistakes.




                                              67
3      Geometry

We created BOT in Unreal Engine 4. The order of its actions depends on the objects
encountered on its way. The appearance of the virtual player is a template shown in the
picture:




                               Fig. 1. Screenshot of BOT

We consider the one-story maze with the following objects:

 Walls
 Doorways
 Boxes
 Columns
The order of BOT’s actions is a priority queue, which is denoted by 𝑆. When our virtual
player faces the corners in the maze, 𝑆 updates. All mentioned above objects have sev-
eral corners. First of all, we calculate automatically mesh navigation to determine cor-
ners and separate possible fast scene changing. Then we process the queue considering
a set of neighbors:

1. finding element with maximal priority
2. recalculating danger zones with respect to impact of neighbors by geometrical close-
   ness with respect to mesh navigation
3. comparing the first K queue elements by using decision making module.

The constructed model allows us to separate geometrical combination of danger zones
by Euclidian distance and different priorities in BOT reaction.




                                             68
   Let's look at an example illustrated in the picture:




                                 Fig. 2. Around the corner

We obtain the event “look around the corner” skipping visual recognition of the objects
as if we already know them. We find out similar events with nearby distance from the
current corner and include them in our calculations. The situation is separated by three
simple steps. The first of them is the case in which BOT meets the nearest corner (the
right side of the doorway). Then we process boxes as consequent corners in our model
with respect to their priority and distance. The probability to turn on the angle X from
0 to 90 degrees with respect to the right wall is represented by density functions. A little
circle represents BOT position.




                             𝜋                         𝜋                             𝜋
                             2                         2                             2
              Fig. 3. Processing priority queue when looking around the corner

The obtained density functions represent the process of visual recognition of objects
when we search for an enemy but have to spend some time on processing object’s
shapes. Using geometry knowledge we reduce amount of time on visual recognition of
objects using its statistical equivalent to find dangerous zones as equivalent of compar-
ing visual images of objects and an enemy.




                                               69
4      Visual Recognition

Visual recognition is the assignment of given pictures to a particular class of objects
with the help of known methods of classification. We implement three standard steps
of it:

 The converting of the source image to the initial idea;
 The extracting characteristic values of recognition;
 The classification of the image to a certain class with the use of the classifier.

In our work we consider three basic approaches to the visual recognition:

   Heuristic methods [2, 3]

      ○ Full heuristic model. Expert compiled a set of rules that describe the image of
        the object (built model), according to which detection is produced.
      ○ Search for characteristic invariant attributes. It is the description of character-
        istics of the object, which are invariant with respect to possible distortions
        (lighting changes, rotation, scaling).

   Method of pattern matching. It is the creation of a template for the image of the
    whole object or its characteristic features. The pattern can be a complicated struc-
    ture and allows for different deformations and transformations. This approach al-
    lows implementation in real time.
   Methods of learning by precedents. The model is automatically built on the set of
    images of an object compiled beforehand from the possible input data of the system
    [4, 5, 6, 7].
The latter approach is the most interesting for us, because results of testing process
show that such methods are more appropriate, so let’s consider the last approach in
detail. It consists of two units: converting the image into a feature vector and classifi-
cation. The former means the most complete and informative representation of an im-
age in the form of a numerical vector. The latter fact implies the verification of hypoth-
esis accessories image to the class object images based on the observation that is the
feature vector.
   Denote a feature vector for 𝑥 ∈ 𝑋 ⊆ 𝑅𝑛 - the description of the object, which is out-
put of the conversion unit. Class will be called a subset 𝐾𝑦 = {𝑥 ∈ 𝑋, 𝑦 ∗ (𝑥) = 𝑦} of the
set 𝑋, 𝑦 ∈ 𝑌 ⊆ 𝑍 – the set of the class markers. We will view the case of binary classi-
fication (the image is an image of the desired object or the image is an image of anything
else), consequently 𝑌 = {−1; 1}. 𝑦 ∗ (𝑥) – the mapping, which is defined for all 𝑥 ∈ 𝑋
and is specified the partition into subsets 𝐾𝑦 . It is worth noting that classes 𝐾𝑦 can over-
lap, because the feature vector is only a description of an object’s attributes, and two
different images can have the same specifications. The training set is pairs of precedents
𝑇 = {(𝑥1 , 𝑦1 ), … , (𝑥𝑙 , 𝑦𝑙 )}: 𝑦 ∗ (𝑥𝑖 ) = 𝑦𝑖 . 𝑖 = 1, 𝑙.
   For the application of classification algorithms and pattern recognition we make the
following hypothesis: the set 𝑋 × 𝑌 is a probability space with probability measure 𝑃,




                                               70
precedents (𝑥1 , 𝑦1 ), … , (𝑥𝑙 , 𝑦𝑙 ) appear randomly and independently in accordance with
the distribution 𝑃.
   The task of classification is to build the function 𝐹(𝑥), which approximates the map-
ping 𝑦 ∗ (𝑥) with the help of the training set.
   Let’s consider several methods of learning by precedents, which we tested in our
work.

4.1    Bayesian Classification Methods
The first method is the principle of posteriori probability maximum [8]. It is based on
following hypothesis:

 𝑋 × 𝑌 is the probability space with probability measure 𝑃 , precedents
  (𝑥1 , 𝑦1 ), … , (𝑥𝑙 , 𝑦𝑙 ) appear randomly and independently in accordance with the dis-
  tribution 𝑃.
 We know density distributions of classes 𝑝𝑦 (𝑥) = 𝑝(𝑥|𝐾𝑦 ), 𝑦 ∈ 𝑌, which we will
  call likelihood functions.
 We know the probability of occurrence of each object from classes 𝑃𝑦 = 𝑃(𝐾𝑦 ), 𝑦 ∈
  𝑌, which we will call the priori probabilities.

Decision rule can be written in the following form:
           𝐹(𝑥) = 𝑎𝑟𝑔 max 𝑃(𝐾𝑦 |𝑥) = 𝑎𝑟𝑔 max 𝑝𝑦 (𝑥)𝑃𝑦                                 (1)
                         𝑦∈𝑌                   𝑦∈𝑌

   The second method is called Bayesian networks [9]. This approach is based on the
combination of the principle of posteriori probability maximum with graph theory. The
idea is to create a graph with vertices corresponding to any component of the feature
vector, and edges indicating a causal relationship.

4.2    Classical Neural Networks
The main idea is the serial conversion of a signal with the elementary functional ele-
ments (neurons), operating in parallel [10]. The basic principle of neural network con-
figuration is to use optimization methods to minimize the mean square error. Also, the
neuron networks are capable of retraining.

4.3    SVM - Support Vector Machine
The SVM algorithm constructs a linear separating surface (hyperplane), equidistant
from the convex hulls of the classes, convex hull is based on the precedents [11]. If the
hyperplane does not exist (classes are not linearly separable), sound conversion will
apply for nonlinear classification, which projects 𝑋 in the space of higher dimension,
probably, infinite. The algorithm for constructing the classifier is reduced to the prob-
lem of quadratic programming. The solution of this task will be unique and the found
extremum will be global.




                                              71
4.4    SNoW - Sparse Network of Winnows
Sparse network of Winnows is a special type of neural networks [12]. The network
consists of two (the number of possible classes) of linear neurons associated with the
feature vector components. Geometrically, SNoW consists in two hyperplanes in the
space of feature vectors. Vector belongs to the class, corresponding to which the hyper-
plane is the closest. The resulting separating surface is thus a hyperplane in the original
space 𝑋.

4.5    Classifier Boosting
This approach combines primitive classifications into one stronger method. The main
idea is an iterative minimization of a convex functional classification error. Boosting
attempts to project the original data into a space where the classes are linearly separable.

4.6    Results

In our research we obtained the following results, using data from demorecords of mul-
tiplayer game sessions:

 SNoW and boosting distinguish the highest percentage of correct detections, about
  94% [13, 14];
 SVM, SNoW and boosting provide high speed of recognition;
 SNoW and boosting have low level of the second kind error.

The correctness of visual recognition was manually checked. Thus, at the current level
of experiment the most appropriate method for our problem is the combination of two
methods: Sparse network of Winnows and Classifier boosting.
   The picture below represents the result of visual recognition unite, using classifier
boosting.




                             Fig. 4. Result of visual recognition




                                                72
In this situation there are two objects, which can be recognized as enemies: the virtual
player and its shadow. But the geometry unit defines that the latter is on the floor, so
AI focuses only on the first one.


5      Decision Making Model

In the most basic games, there was simply a lookup table for what was currently hap-
pening and the appropriate best action. In the most complex cases, the computer would
perform a short minimax search of the possible state space and return the best action
[15]. The minimax search had to be of short depth since the game was occurring in real-
time.
    We use the blueprints visual scripting system in Unreal Engine 4 [16, 17]. The node-
based interface allows us to create the maze with different objects (for instance, boxes,
doors). Also, this concept gives an opportunity to make any appearance of BOT and to
determine the direction of the eye with the help of a camera-element. The virtual player
is the combination of several blueprints, each of which corresponds to the certain ac-
tion: moving, shooting, behavior during shooting and search for enemies.
    We focus on a rule-based system (RBS) [18, p.169] to identify simple situations and
make a choice for a complex processes as a tuple of simple rules. RBS works with
instructions and the interpreter. In our case, rules are oriented tree structures. Let’s dis-
cuss the short list of game events:

1) Walking
   a) Bypassing and Search
   b) Moving toward some point in the maze
   c) Finding cover
2) Shooting
   a) Sighting
   b) Opening fire
   c) Correction relative to recoil and motor reflexes
3) Visual recognition
   a) Recognition of objects
   b) Recognition of dangerous zones
   c) Recognition of enemy

The simplest set of rules may be the following:

 1𝑎) ∧ 1𝑐) → 1𝑎) (just bypassing)
 1𝑎) ∧ 3𝑏) → 2𝑎) ∧ 1𝑏) (accurate obstacle avoidance)
 1𝑎) ∧ 3𝑐) → 2𝑎) ∧ 2𝑏) ∧ 2𝑐) (shooting after enemy recognition)

We give only a superficial representation of these rules, which are much more compli-
cated when we go into details with respect to implementation in game engine.
   Rule based system allow us to implement the neural network method when we have
to choose another rule with the same premise, for example, if we have a rule:




                                               73
               1𝑎) ∧ 3𝑐) → 1𝑏) ∧ 1𝑐)                                                    (2)

   This rule should be used, if a player has low health and his chance to win against
enemy is almost zero, so he should hide and create an ambush for an enemy.
   If we have time-limit and command should defend some place we should use the
following rule:

               1𝑎) ∧ 3𝑐) → 1𝑏) ∧ 2𝑏)                                                    (3)

    So we will distract an enemy or sacrifice player to win some time for a command.
    In a real game the player chooses different rules depending on his psychological
temper, emotions or calculations, so it is really a good place to use learning techniques.
    For each type of game we produce rules, which say whether or not player achieve
his current goal and increase a part of command goal for this game. Of course command
goal has greater priority, but in fact, in each situation the player decides without hesi-
tation operating with current situation and parameters from visual recognition.
    Formal Concept Analysis methods are used to find out a basis of rules (implications)
when we have a non-empty intersection of premises. Machine Learning is used to find
weight combination for rules, which have the same premises.
    Model of neuron networks can be applied to univariate and multivariate analysis. In
our work using neuron approach is appropriate to imitate personal and team player’s
goals. One player worries about its level of health; also, it is interested in winning.
These two ideas characterize its behavior during the game; it means that the following
situation is possible: BOT may decide to shoot and be with the low level of its health,
because it will win. But, when we consider team game, BOT will not risk by it-self, it
will defend, possible, shoot or run away. This case of game is complicated, but we can
divide it into several simple cases, each of them is the same as for personal game. That
is why neural networks can successfully reflect behavior of players in shooter.


6      Process of Gaming

Process of gaming starts with visual recognition. As far as BOT defines an enemy with
certain threshold probability or after enemy fire identification, it starts to aim. Given
that X is the horizontal rotation change speed, and Y is the vertical. The relative error
depends on the angle between BOT’s rotation movements and direction on the target,
and the sign of this angle. It also depends on X-speed and Y-speed: the stronger the
need to change the speed of rotation change, the greater the relative error will occur.
   Let’s consider two situations of possible targeting. In both examples visual recogni-
tion shows the place of the enemy. Also, we can see the rotation of BOT, which de-
scribes by means of the sum vector of X and Y. Black circles shows the approximate
trajectory of aiming which is close to the human response to the detection of the adver-
sary. The figure 5 represents the situation in which the direction to the target is opposite
to the BOT rotation, therefore the relative error will be very high.




                                               74
                                    Fig. 5. Example 1

The figure 6 displays the case in which the direction to the goal and the rotation are the
same; consequently, the relative error will be rather low.




                                    Fig. 6. Example 2

So, we divide aiming by three phases:

 inertia during recognition,
 instant aiming,
 braking or correction near the goal,

and include them in our model.




                                              75
7      Current Progress and Conclusions

We have stated game AI model and test it manually on demorecords. We will provide
statistical parameters from experiment on one enemy at three-dimensional maze with
over 500 different positions of players. In the current state we are verifying the param-
eters to identify the dangerous zones and we proceed with the comparison of the meth-
ods of visual recognition to apply for our model. RBS is now constructed automatically
using Unreal Engine 4 and we recalculate bases of implications for every addition of
new rules block. The system is flexible enough to extend to a new rule and to recalculate
parameters of neural networks for a problem of rule choice with similar premises.
   The following picture represents the current work of our AI:




                            Fig. 7. Looking around the corner

The BOT AI can decide in which direction it will move on. Bright green arrows (1, 5)
show that appropriate routes are the most probable, whereas red arrows (6, 7) corre-
spond to the least probable paths. Yellow cursors (2, 3) display that such directions are
possible, but the probability is not very high.
   We aim to implement the blueprint, which will correspond to target sighting with
adjustments. At the current progress we test the model of targeting with respect to ded-
icated case of one moving enemy at scene, but we will continue to verify this module
with many enemies and partial recognition cases after completing results on the best
visual recognition models.


       Acknowledgements

The authors would like to thank the colleagues from Higher School of Economics Geof-
frey Decrouez for great support during preparation process and Anton Konushin for
well-timed advice on visual recognition methods.




                                             76
       References
 1. Yanovich       I.   “Review       of    Call   of     Duty:    Ghosts”     (in    Russian)
    http://kanobu.ru/articles/syuzhetnaya-kampaniya-call-of-
    duty-ghosts-367451/
 2. Yang G. and Huang T. S., “Human Face Detection in ComplexBackground”. Pattern
    Recognition, vol. 27, no. 1, pp. 53-63, 1994.
 3. Kotropoulos C. and Pitas I., “Rule-Based Face Detection in Frontal Views”. Proc. Int'l Conf.
    Acoustics, Speech and Signal Processing, vol. 4, pp. 2537-2540, 1997.
 4. Pham T. V., Worring M., and Smeulders A. W. M. “Face detection by aggregated bayesian
    network classifiers”. Pattern Recognition Letters, 23(4):451-461, February 2002.
 5. Henry A. Rowley, Shumeet Baluja, and Takeo Kanade. “Human face detection in visual
    scenes”. Technical Report CMU- CS-95-158R, School of Computer Science, Carnegie
    Mellon University, November 1995.
 6. Roth D., Yang M.-H., and Ahuja N. “A SNoW-based face detector”. Advances in Neural
    Information Processing Systems 12 (NIPS 12), MIT Press, Cambridge, MA, pp. 855-861,
    2000.
 7. Viola P. and Jones M. “Robust Real-time Object Detection”. In Proc. 2nd Int'l Workshop on
    Statistical and Computational Theories of Vision - Modeling, Learning, Computing and
    Sampling, Vancouver, Canada, July 2001.
 8. Vorontsov K.V. “Bayesian classification algorithms. Drafts of lectures” (in Russian)
    http://www.ccas.ru/voron/download/Bayes.pdf
 9. Heckerman, D. “A Tutorial on Learning with Bayesian Networks”. In Jordan, M. (Ed.),
    Learning in Graphical Models, MIT Press, 1998.
10. Vezhnevec A. “ Popular neural network architecture” (in Russian)
    http://cgm.graphicon.ru/metodyi/populyarnyie_neyrosetevyie_a
    rh itekturyi.html
11. Vapnik V. and Lerner A. J. “Generalized portrait method for pattern recognition”. Auto-
    mation and Remote Control, vol. 24, no. 6, 1963.
12. Roth D. “The SNoW Learning Architecture”. Technical Report UIUCDCS-R-99-2102,
    UIUC Computer Science Department, 1999.
13. Ming-Hsuan Yang, David Kriegman, and Narendra Ahuja. “Detecting Faces in Images: A
    Survey”. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), vol. 24,
    no. 1, pp. 34-58, 2002.
14. Viola P. and Jones M. “Robust Real-time Object Detection”. In Proc. 2nd Int'l Workshop
    on Statistical and Computational Theories of Vision - Modeling, Learning, Computing and
    Sampling, Vancouver, Canada, July 2001.
15. Szelinski R. “Computer Vision: Algorithms and Applications”. Springer, 2011.
16. https://www.unrealengine.com
17. http://unreal-engine4.ru
18. Champandard A.J. “AI Game Development: Synthetic Creatures with Learning and Reac-
    tive Behaviors”. New Riders Games, 2003.




                                                 77