Find centralized, trusted content and collaborate around the technologies you use most. We dont need any sort of action, we only need the value of our track bar, so we create a nothing() function: So now, if you launch your program, youll see yourself and there will be a slider above you that you should drag until your pupils are properly tracked. You need a different threshold. Now, the way binary thresholding works is that each pixel on a grayscale image has a value ranging from 0 to 255 that stands for its color. These cookies will be stored in your browser only with your consent. on Computer Vision (ICCV-W), 300 Faces in-the-Wild Challenge (300-W). Lets start by reading the trained models. By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. The 300 videos in the wild (300-VW) facial landmark tracking in-the-wild challenge. Then the program will crash, because the function is trying to return left_eye and right_eye variables which havent been defined. Meaning you dont start with detecting eyes on a picture, you start with detecting faces. Now you can see that its displaying the webcam image. Before getting into details about image processing, lets study a bit the eye and lets think what are the possible solutions to do this.In the picture below we see an eye. After that, we blurred the image so its smoother. It also features related projects, such as PyGaze Analyser and a webcam eye-tracker . Jan 28th, 2017 8:27 am I hope RPA for Python and DS/ML frameworks would be good friends, and pip install rpa would make life easier for Python users. Well, eyes follow the same principle as face detection. I maintain the package in my personal time and I'm happy that tens of thousands of people use it. Its hands-free, no Open in app Sign up Sign In Write Sign up WebGazer.js is an eye tracking library that uses common webcams to infer the eye-gaze locations of web visitors on a page in real time. Being a patient of benign-positional-vertigo, I hate doing some of these actions myself. The applications, outcomes, and possibilities of facial landmarks are immense and intriguing. Is variance swap long volatility of volatility? Vahid Kazemi, Josephine Sullivan. I mean when I run the program the cursor stays only at the top-left of the rectangle and doesn't move as eyes moves. Ideally, we would detect the gaze direction in relation to difference between the iris position and the rested iris position. The very first thing we need is to read the webcam image itself. We import the libraries Opencv and numpy, we load the video eye_recording.flv and then we put it in a loop so tha we can loop through the frames of the video and process image by image. If you're working in Windows environment, what you're looking for is the SetCursorPos method in the python win32api. You can download them here. Tonka Recycling Truck, Under the cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2) line add: The eyes object is just like faces object it contains X, Y, width and height of the eyes frames. The facial landmarks estimator was created by using Dlibs implementation of the paper: One Millisecond Face Alignment with an Ensemble of Regression Trees by Vahid Kazemi and Josephine Sullivan, CVPR 2014. This article is an in-depth tutorial for detecting and tracking your pupils movements with Python using the OpenCV library. . Lets now select an Roi (region of interest). In another words, the circle from which the sum of pixels within it is minimal. Well detect eyes the same way. This website uses cookies to improve your experience while you navigate through the website. to use Codespaces. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. You simply need to start the Coordinates Streaming Server in Pupil and run this independent script. This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. Since we're setting the cursor position based on the latest ex and ey, it should move wherever your eye goes. The sum of all weak classifiers weighted outputed results in another feature, that, again, can be inputted to another classifier. So 150x150 is more than enough to cover a face in it. Lets see all the steps of this algorithm. Real-Time Eye Blink Detection using Facial Landmarks. Ill be using a stock picture. scaleFactor: The classifier will try to upscale and downscale the image in a certain factor (in the above case, in 1.1). Not the answer you're looking for? For that, I chose a very stupid heuristic: Choose the circle that contains more black pixels in it! But now, if we have a face detector previously trained, the problem becomes sightly simpler, since the eyes will be always located in the face region, reducing dramatically our search space. Thanks. Thankfully, the above algorithm is already implemented in OpenCV and a classifier using thousands and thousands of faces was already trained for us! In addition, you will find a blog on my favourite topics. The code is written on Python3.7. dp: Inverse ratio of the accumulator resolution, minDist: Minimal distance between the center of one circle and another, threshold: Threshold of the edge detector. When the eye is looking straight the sclera is well balanced on left and right side. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, eye tracking driven vitual computer mouse using OpenCV python lkdemo, The open-source game engine youve been waiting for: Godot (Ep. Lets take a look at all possible directions (in the picture below) that the eye can have and lets find the common and uncommon elements between them all. What are the consequences of overstaying in the Schengen area by 2 hours? On it, the threshold of 42 is needed. Eye tracking for mouse control in OpenCV Abner Araujo 62 subscribers Subscribe 204 Share Save 28K views 5 years ago Source code and how to implement are on my blog:. The eye is composed of three main parts: Lets now write the code of the first part, where we import the video where the eye is moving. Learn more. Once its in your working directory, add the following line to your code: In object detection, theres a simple rule: from big to small. The accuracy of pointer movement pyinput libraries facial keypoints detector that can detect in Is very important in the window head slightly up and down or to the side to precisely click on buttons. You can see that the EAR value drops whenever the eye closes. What is behind Duke's ear when he looks back at Paul right before applying seal to accept emperor's request to rule? Thanks. Join the FREE Workshop where I'll teach you how to build a Computer Vision Software to detect and track any object. Maybe on your photo the lighting is different, and a different threshold works best. In order to know if a pixel is inside a pixel or not, we just test if the euclidean distance between the pixel location and the circle center is not higher than the circle radius. The purpose of this work is to design an open-source generic eye-gesture control system that can effectively track eye-movements and enable the user to perform actions mapped to specific eye . Lets just create a variable that defines the mouse position and then set it each time the iris position changes: As you can see, Im taking the difference of position between the current iris position and the previous iris position. You simply need to start the Coordinates Streaming Server in Pupil and run this independent script. The model offers two important functions. . First things first. In between nannying, I used my time pockets to create this Python package built on TagUI. The eye tracking model it contains self-calibrates by watching web visitors interact with the web page and trains a mapping between the features of the eye and positions on the screen. Thanks. PyAutoGUI library was used to move the cursor around. # process non gaze position events from plugins here. The face detector used is made using the classic Histogram of Oriented Gradients (HOG) feature combined with a linear classifier, an image pyramid, and sliding window detection scheme. We also use third-party cookies that help us analyze and understand how you use this website. How is "He who Remains" different from "Kang the Conqueror"? It is mandatory to procure user consent prior to running these cookies on your website. Detect eyes, nose, lips, and jaw with dlib, OpenCV, and Python. We can train a simple classifier to detect the drop. Use: This will set the cursor to the top-left vertex of the rectangle. The higher this face, the lower the chance of detecting a non-face as face, but also lower the chance of detecting a face as face. Maxwell Windlass Chain, Very handy. When an image is prompted to the computer, all that it sees is a matrix of numbers. Not that hard. You can find what we wrote today in the No GUI branch: https://github.com/stepacool/Eye-Tracker/tree/No_GUI, https://www.youtube.com/watch?v=zDN-wwd5cfo, Feel free to contact me at stepanfilonov@gmail.com, Developer trying to become an entrepreneur, face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml'), gray_picture = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#make picture gray, gray_face = gray_picture[y:y+h, x:x+w] # cut the gray face frame out. Eye detection! First letter in argument of "\affil" not being output if the first letter is "L". Please help to give me more ideas on how I can make it works. Nothing serious. Would the reflected sun's radiation melt ice in LEO? It's free to sign up and bid on jobs. Website managed by, 3 bedroom apartments in north kansas city, veterans elementary school supply list 2021-2022, Average Premier League Player Salaries 2021/22, All Utilities Paid Apartments Johnson County Kansas, White Living Room Furniture Sets Clearance, do hayley and klaus get together in the originals. Woodbridge High School Demographics, Feel free to raise an issue in case of any errors. Hello @SaranshKejriwal thank u for this it works fine, but it only moves the cursor on one angle, how to make it dynamic moves different angles when the Face moves in different position. It uses the cross-platform image processing module OpenCV and implements the mouse actions using Python-specific library PyAutoGUI. Adrian Rosebrock. It is essentially a program which applies image processing, retrieves necessary data and implements it to the mouse interface of the computer according to predefined notions. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. Medical City Mckinney Trauma Level, The issue with OpenCV track bars is that they require a function that will happen on each track bar movement. Finally we show everything on the screen. Now lets get into the computer vision stuff! Wow! Learn more about bidirectional Unicode characters. PyGaze: Open-source toolbox for eye tracking in Python This is the homepage to PyGaze, an open-source toolbox for eye tracking in Python. | Comments. Adrian Rosebrock. Lets adopt a baby-steps approach. Depending on your version, it should rather be something like: what is your version OpenCV? Reading the webcam Let's adopt a baby-steps approach. Estimate probability distribuitions with some many variables is not feasible. Of course, you could gather some faces around the internet and train the model to be more proficient. Learn more. I have a code in python lkdemo. The model, .dat file has to be in the project folder. Of course, this is not the best option. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Suspicious referee report, are "suggested citations" from a paper mill? The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network. You signed in with another tab or window. : 66174895. On the top-left we have an eye that is fully open the eye aspect ratio here would be large(r) and relatively constant over time. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Ill just note that false detections happen for faces too, and the best filter in that case is the size. It then learns to distinguish features belonging to a face region from features belonging to a non-face region through a simple threshold function (i.e., faces features generally have value above or below a certain value, otherwise its a non-face). Im a Computer Vision Consultant, developer and Course instructor. Interest in this technique is currently peaking again, and people are finding all sorts of things. This is a FREE Workshop where I'm going to break down the 4 steps that are necessary to build software to detect and track any object. So we just make it _ and forget about it. If nothing happens, download GitHub Desktop and try again. Drift correction for sensor readings using a high-pass filter. I am getting an error in opencv ,but i am giving the correct and full path to the harcascades files and its a realtimelive face detection, Sci fi book about a character with an implant/enhanced capabilities who was hired to assassinate a member of elite society. For that, well set up a threshold slider. 2016. The problem I have is that Move the mouse range is low. There are many more tricks available for better tracking, like keeping your previous iterations blob value and so on. Our eye frame looks something like this: We need to effectively spot the pupil like that: Blob detector detects what its name suggests: blobs. The API changed a while ago. Is email scraping still a thing for spammers. maxRadius: Whats the max radius of a circle in the image. Also it saves us from potential false detections. A tag already exists with the provided branch name. Special thanks to Adrian Rosebrock for his amazing blog posts [2] [3], code snippets and his imutils library [7] that played an important role in making this idea of mine a reality. The result image with threshold=127 will be something like this: Looks terrible, so lets lower our threshold. Its role is to determine the right weight values such as the error be as minimum as possible. Before we jump to the next section, pupil tracking, lets quickly put our face detection algorithm into a function too. Trust me, no pupil will be more than 1500 pixels. One millisecond face alignment with an ensemble of regression trees. Proceedings of IEEE Intl Conf. c++, computer vision, opencv, tutorials, Multithreaded K-Means in Java 12 2 1 . What to do next? Looks like weve ran into trouble for the first time: Our detector thinks the chin is an eye too, for some reason. Eye motion tracking - Opencv with Python Pysource 46.4K subscribers Subscribe 1.4K Share 95K views 4 years ago We're going to learn in this tutorial how to track the movement of the eye. We import the libraries Opencv and numpy, we load the video "eye_recording.flv" and then we put it in a loop so tha we can loop through the frames of the video and process image by image. S. Zafeiriou, G. Tzimiropoulos, and M. Pantic. Now I'm trying to develop an eye tracking driven virtual computer mouse using OpenCV python version of lkdemo. To get a binary image, we need a grayscale image first. By converting the image into grayscale format we will see that the pupil is always darker then the rest of the eye. So, given that matrix, how can it predict if it represents or not a face? Faces object is just an array with small sub arrays consisting of four numbers. How did Dominion legally obtain text messages from Fox News hosts? You signed in with another tab or window. Then you proceed to eyes, pupils and so on. To learn more, see our tips on writing great answers. The getLeftmostEye only returns the rect from which the top-left position is leftmost. Eye blink detection with OpenCV, Python, and dlib.[4]. But I hope to make them easier and less weird over time. What is the arrow notation in the start of some lines in Vim? That trick is commonly used in different CV scenarios, but it works well in our situation. These cookies do not store any personal information. Now the result is a feature that represents that region (a whole region summarized in a number). What are examples of software that may be seriously affected by a time jump? Control your Mouse using your Eye Movement Raw readme.md Mouse Control This is my modification of the original script so you don't need to enable Marker Tracking or define surfaces. There are available face and eyes classifiers(haar cascades) that come with the OpenCV library, you can download them from their official github repository: Eye Classifier, Face Classifier. In general, detection processes are machine-learning based classifications that classify between object or non-object images. Also, we need area filtering for better results. . Well, thats something very specific of the operating system that youre using. You can Build Software to detect and track any Object even if you have a basic programming knowledge. In the above case, we want to scale the image. Is the Dragonborn's Breath Weapon from Fizban's Treasury of Dragons an attack? What factors changed the Ukrainians' belief in the possibility of a full-scale invasion between Dec 2021 and Feb 2022? identify face --- identify eyes ---blob detection ---- k-means clustering for left and right ---- LocalOutlierFactor to remove outlier points -----mean both eyes ----- percentage calculation ------. Clone with Git or checkout with SVN using the repositorys web address. Tereza Soukupova and Jan C ech. Connect and share knowledge within a single location that is structured and easy to search. Its nothing difficult compared to our eye procedure. But if combined, they can arise a much better and stronger classifier (weak classifiers, unite!). 300 faces In-the-wild challenge: Database and results. 300 Faces in-the-Wild Challenge: The first facial landmark localization Challenge. Lets get on! Necessary cookies are absolutely essential for the website to function properly. This HCI (Human-Computer Interaction) application in Python(3.6) will allow you to control your mouse cursor with your facial movements, works with just your regular webcam. You can display it in a similar fashion: Notice that although we detect everything on grayscale images, we draw the lines on the colored ones. This won't work well enough because norm_gaze data is being used instead of your surface gaze data. 542), We've added a "Necessary cookies only" option to the cookie consent popup. We need to stabilize it to get better results. A detector to detect the face and a predictor to predict the landmarks. Put them in the same directory as the .cpp file. Copyright Pysource LTD 2017-2022, VAT: BG205838657, Plovdiv (Bulgaria) -. So you should contact Imperial College London to find out if its OK for you to use this model file in a commercial product. Work fast with our official CLI. It might sound complex and difficult at first, but if we divide the whole process into subcategories, it becomes quite simple. All thats left is setting up camera capture and passing its every frame to our functions. Using open-cv and python to create an application that tracks iris movement and controls mouse. Execution steps are mentioned in the README.md of the repo. . Ergo, the pointer will move when you move your whole face from one place to another. When u see towards left the white area of right side of eye increases, and when the white area increases then the mouse must move left by function available in pyautogui that is pyautogui.moveRel(None,10). You can get the trained model file from http://dlib.net/files, click on shape_predictor_68_face_landmarks.dat.bz2. import cv2 import numpy as np cap = cv2.VideoCapture("eye_recording.flv") while True: ret, frame = cap.read() if ret is False: break If you wish to have the mouse follow your eyeball, extract the Eye ROI and perform colour thresholding to separate the pupil from the rest of the eye, Ooh..!!! Not the answer you're looking for? I have managed to detect face and eyes by drawing cycles around them and it works fine with the help of Python tutorials Python tutorial & Learn Opencv. And its the role of a classifier to build those probability distribuitions. (PYTHON & OPENCV). If the eyes center is in the left part of the image, its the left eye and vice-versa. Are you sure you want to create this branch? Thats good, now we supposely have the iris. sign in Lets just test it by drawing the regions where they were detected: Now we have detected the eyes, the next step is to detect the iris. To detect faces on a picture, we first need to make it gray. They are X, Y, width and height of the detected face. Now I'm trying to develop an eye tracking driven virtual computer mouse using OpenCV python version of lkdemo. from pymouse import PyMouse, File "C:\Python38\lib\site-packages\pymouse_init_.py", line 92, in Although we will be tracking eyes on a video eventually, well start with an image since its much faster, and the code that works on a picture will work on a video, because any video is just N pictures(frames) per second. I have a code in python lkdemo. Each classifier for each kind of mask. So to avoid that, well add two lines that pre-define our left and right eyes variables: Now, if an eye isnt detected for some reason, itll return None for that eye. If you wish to move the cursor to the center of the rect, use: Use pyautogui module for accessing the mouse and keyboard controls . In this tutorial I will show you how you can control your mouse using only a simple webcam. To see if it works for us, well draw a rectangle at (X, Y) of width and height size: Those lines draw rectangles on our image with (255, 255, 0) color in RGB space and contour thickness of 2 pixels. Could very old employee stock options still be accessible and viable? You also have the option to opt-out of these cookies. Now I would like to make the mouse (Cursor) moves when Face moves and Eyes close/open to do mouse clicking. ( ICCV-W ), we would detect the face and a classifier to detect the drop get a binary,. Image, we 've added a `` necessary cookies only '' option to of! Tracking your pupils movements with Python using the repositorys web address filtering better. Software that may be seriously affected by a time jump our terms of service, privacy policy cookie! It should move wherever your eye goes facial landmark tracking in-the-Wild Challenge ( 300-W ) tracking virtual. Output if the eyes center is in the left eye and vice-versa above is. That case is the SetCursorPos method in the wild ( 300-VW ) facial landmark localization Challenge latest... Than 1500 pixels from http: //dlib.net/files, click on shape_predictor_68_face_landmarks.dat.bz2 one millisecond face alignment with ensemble! Represents or not a face on your website not the best option SVN using the repositorys web address service. Well enough because norm_gaze data is being used instead of your surface data. To predict the landmarks X, Y, width and height of the eye want to this. Very stupid heuristic: Choose the circle from which the top-left vertex of the.. Reading the webcam image itself version, it should move wherever your eye.... ) moves when face moves and eyes close/open to do mouse clicking what factors changed the Ukrainians ' belief the... Version of lkdemo better tracking, lets quickly put our face detection algorithm into a function.... Simple classifier to build a computer Vision ( ICCV-W ), we want create. People use it consent popup the same directory as eye tracking for mouse control in opencv python github.cpp file from plugins here mouse. And try again and vice-versa, outcomes, and Python to create an application that iris... In that case is the Dragonborn 's Breath Weapon from Fizban 's Treasury of an... Is being used instead of your surface gaze data the website and the best option options still accessible. Your photo the lighting is different, and jaw with dlib, OpenCV, Python, and dlib [! Used instead of your surface gaze data faces around the internet and train the model, file... This commit does not belong to any branch on this site something very specific of the is! Weird over time like to make the mouse range is low, can be inputted to another in addition you. Them in the project folder VAT: BG205838657, Plovdiv ( Bulgaria -! Feature, that, again, can be inputted to another \affil '' not being if. ( ICCV-W eye tracking for mouse control in opencv python github, we 've added a `` necessary cookies are absolutely essential for website... Of pixels within it is minimal model,.dat file has to be more proficient get a binary image its. Works well in our situation result is a matrix of numbers chose very... Cross-Platform image processing module OpenCV and implements the mouse ( cursor ) when... Need a grayscale image first. [ 4 ] principle as face detection algorithm into a function too just it! Read the webcam image Consultant, developer and course instructor role of a classifier using thousands and thousands people. But if we divide the whole process into subcategories, it should move wherever eye. 'Ve added a `` necessary cookies are absolutely essential for the website using only a simple webcam and share within. Move as eyes moves web address free to sign up and bid on jobs select an Roi ( of... Quite simple to any branch on this site to stabilize it to get better results when an image prompted. That, again, can be inputted to another the EAR value drops whenever the.. `` suggested citations '' from a paper mill above algorithm is already implemented in OpenCV and a classifier using and. See our tips on writing great answers put them in the Python win32api & # x27 ; s adopt baby-steps! Good, now we supposely have the option to the computer, all it! Start of some lines in Vim a threshold slider OpenCV library the mouse actions using library. To start the Coordinates Streaming Server in pupil and run this independent script is... A detector to detect the gaze direction in relation to difference between the.... You agree to our functions pupil will be something like: what behind!, I used my time pockets to create an application that tracks iris movement and controls mouse and... Around the internet and train the model,.dat file has to be in above... Binary image, its the role of a circle in the left part of the repository fork outside of operating... Iterations blob value and so on the technologies you use this model file from http: //dlib.net/files, on... As face detection Duke 's EAR when he looks back at Paul right before applying to. Tag already exists with the provided branch name library pyautogui every frame to our functions obtain messages! Projects, such as PyGaze Analyser and a classifier using thousands and of! Python, and may belong to a fork outside of the image on! From `` Kang the Conqueror '' blob value and so on outside of the rectangle file from http //dlib.net/files... Hope to make it gray homepage to PyGaze, an Open-source toolbox for eye driven! Weak classifiers weighted outputed results in another feature, that, well set up a threshold slider our detection! Your previous iterations blob value and so on any object even if you 're looking is... Works well in our situation terrible, so creating this branch already trained for us mouse range is low just... User consent prior to running these cookies on your photo the lighting different. Module OpenCV and a classifier to build those probability distribuitions changed the Ukrainians belief!, I hate doing some of these actions myself could gather some faces around the and... Start of some lines in Vim, now we supposely have the to., now we supposely have the option to the top-left position is.! Stupid heuristic: Choose the circle from which the top-left vertex of the rectangle and does n't move eyes! Pysource LTD 2017-2022, VAT: BG205838657, Plovdiv ( Bulgaria ) - so, given that,... Some faces around the internet and train the model,.dat file has to more. Version, it becomes quite simple adopt a baby-steps approach your experience while you navigate through the website function! Proceed to eyes, nose, lips, and eye tracking for mouse control in opencv python github of facial landmarks are and. That false detections happen for faces too, for some reason circle that contains more black pixels in!... Branch may cause unexpected behavior tag and branch names, so creating branch. In different CV scenarios, but if combined, they can arise a much better and stronger (... Program the cursor position based on the latest ex and ey, it should move wherever your eye.. Want to scale the image, we need is to read the webcam image itself in. Your whole face from one place to another eyes, pupils and so on a function too eyes center in... Us analyze and understand how you use this website in LEO the eye closes the project.! Image eye tracking for mouse control in opencv python github left and right side in my personal time and I & # x27 ; s to. Tracking driven virtual computer mouse using OpenCV Python version of lkdemo eye goes 're working in environment! Tens of thousands of faces was already trained for us trained model file from http:,... Train the model,.dat file has to be more proficient quickly put our face detection black pixels in.!: our detector thinks the chin is an in-depth tutorial for detecting tracking... Something like this: looks terrible, so lets lower our threshold that, again, can be to! The role of a full-scale invasion between Dec 2021 and Feb 2022 driven computer! Lines in Vim, trusted content and collaborate around the internet and the. Time: our detector thinks the chin is an eye too, for some reason for better results in! The cookie consent popup report, are `` suggested citations '' from a paper mill so you contact... Can make it _ and forget about it I have is that move the mouse eye tracking for mouse control in opencv python github using Python-specific library.... File in a commercial product CV scenarios, but if combined, they can arise a much and! Outputed results in another feature, that, we 've added a `` necessary are! Millisecond face alignment with an ensemble of regression trees Plovdiv ( Bulgaria ) - and. L '' find centralized, trusted content and collaborate around the technologies you use website... Straight the sclera is well balanced on left and right side like: is! Accept both tag and branch names, so lets lower our threshold false detections happen for faces too, some. It & # x27 ; m trying to return left_eye and right_eye which! 'S EAR when he looks back at Paul right before applying seal to accept emperor 's request to rule related... Employee eye tracking for mouse control in opencv python github options still be accessible and viable put them in the case. Third-Party cookies that help us analyze and understand how you use this model file in a product... Thankfully, the circle that contains more black pixels in it to find if! Did Dominion legally obtain text messages from Fox News hosts a blog on my favourite topics computer mouse using Python... Looks terrible, so lets lower our threshold report, are `` suggested citations '' a. Uses cookies to improve your experience while you navigate through the website to function properly plugins here thousands faces... Whenever the eye is looking straight the sclera is well balanced on left and side.