Chevron Left
Back to Python Project: pillow, tesseract, and opencv

Learner Reviews & Feedback for Python Project: pillow, tesseract, and opencv by University of Michigan

1,800 ratings

About the Course

This course will walk you through a hands-on project suitable for a portfolio. You will be introduced to third-party APIs and will be shown how to manipulate images using the Python imaging library (pillow), how to apply optical character recognition to images to recognize text (tesseract and py-tesseract), and how to identify faces in images using the popular opencv library. By the end of the course you will have worked with three different libraries available for Python 3 to create a real-world data-analysis project. The course is best-suited for learners who have taken the first four courses of the Python 3 Programming Specialization. Learners who already have Python programming skills but want to practice with a hands-on, real-world data-analysis project can also benefit from this course. This is the fifth and final course in the Python 3 Programming Specialization....

Top reviews


Jun 23, 2020

This last course is much more challenging than the prior four, but provides a very good launch pad for taking what you've learned and getting you actually using the skills in building Python code.


Apr 1, 2021

This course gave great insight in how to approach a new library which I believe is one of the most powerful skills a programmer can have. Keep up the great work that you guys have been doing.

Filter by:

1 - 25 of 452 Reviews for Python Project: pillow, tesseract, and opencv

By Artem E

May 7, 2019

Really this is awfull course. I finished other courses of the specialization and waited untill this course is ready. So I just audit the materials of the course. And I have no the least intention to pay for subscription about $50 just to get course certificate and specialization certificate. I'll cannot respect myself after that if I'll do so.

The lections are terrible! There you can see the lector himself verbally explaining something without any hint of slides or other auxiliary visual materials and spelling (!) (:facepalm:) the commands to write in the terminal. Or you can see the scrolled IPython Notebook with the voice of the lector that is reading word-to-word(!) the comments from notebook (:facepalm:). Probably for the case if you have difficalties with reading yourself.

By the way, video and audio in the the lections of second type are poorly synchronized. And at least for the one lection they were recorded separately because in video are shown one version of library while the voice speaks about other version!

Also the lections practically do not give you knowledge about PIL, Tesseract and OpenCV. It is suggested that you will learn yourself from documentation, google and sourse code (!) (:facepalm:).

Why then should I spare my time on this course and pay for subscription? I can learn myself in this way without this course.

By Ross M

May 23, 2019

This course, the fifth and final in the specialisation, feels like a rushed job. Quite disappointing given this was the supposed climax of the specialisation.

By Christoph V

Jul 25, 2019

This course is a disgrace. The questions at hand are poorly explained and you are expected to invest a lot of time researching yourself and then even more time to find the right parameters by trial and error. The jupyter notebook environemnt where you are supposed to do the final assignment is not fast enough to run the code in a reasonable amount of time, so most time is wasted waiting. All this is contradicting the reason, as to why i am doing these courses. I am working full time. I do not have the time to search for everything myself. If you need this course for the specialisation, i advice you to download python and the necessary modules to do the assignement on you own pc. This seriously speeds everything up.

By Michael K

Apr 9, 2020

There are aspects of this course I consider worthy of 4+ stars, and there are aspects I consider worthy of 2 or less stars. So splitting down the middle with 3 stars. I appreciate what the instructor was aiming for, to push students into a hands-on, realistic programming project using third-party libraries, but the execution was quite lacking.


1) While I felt the other 4 courses of the Specialization were too basic and too easy, this one is quite the opposite. It throws a real-world type programming project at you and gives you a serious challenge. Being challenged is when you learn the most.

2) Learning how to integrate third-party libraries is a very useful skill.

3) Nice to use a real Python environment like Jupyter Notebooks instead of a sandbox online environment.


1) Enormous difficulty jump from the previous course in the Specialization to this one. If I didn't already have programming experience with other languages I would have likely found this course borderline incomprehensible.

2) The course can't quite seem to be decide whether it wants you to setup your own Jupyter Notebook environment or use the Coursera Notebook. At first it seems to encourage you to create your own, but then doesn't give you a link to download the accessory files (images, etc) that are required to follow along. You have to search through the forums to find it. But, later on, you're introduced to a package Kraken that simply does not work on Windows (without actually telling you this so I wasted hours trying to install the complicated dependency chain through Conda only to find out the main Kraken package is Mac/Linux only). So then you're forced into using the Coursera notebook anyway for that part, and it is extremely slow.

3) While it's good to experience integrating third-party libraries, I feel like this project uses too many. Including one (Kraken) that isn't even used in the final project, so why complicate things by covering it?

4) The way you submit the final project is a total mess. You have to copy & paste your code into a text box and then submit it. Another student then has to copy & paste the code into their Jupyter environment to test it out and give you a grade. But Coursera messes up the formatting to your code when you submit, which makes your code unusable by the other student. So you have to copy & paste your code to an online document like Google Docs and provide a link to the Google Doc. Just seems needlessly complicated and messy.

The Python 3 Specialization which this course is part of was good, but I would not recommend taking this as a standalone course.

By Amit C

May 28, 2019

Honestly, after taking the first 4 courses from the specialization, I had high hopes from this course as well but the content doesn't seem up to the mark. The pace is really fast and not much explanation is provided should have been better considering the simplicity with which concepts were taught in the first 4 courses.

By Liu J

Oct 9, 2019


1. Huge difficulty gap between course 4 and course 5, like 1+1 to rocket science kind.

2. It's definitely not beginner level, I even doubt whether it counts as intermediate level, because I had other intermediate level courses before, never felt like this.

3. The instructions in the last exercise are ambiguous and confusing. No tips, no milestone, makes me unable to know if I am on the right track, and extreme frustrated.

Conclusion: I don't know why this course counts as beginner level, it definitely isn't. For me it's like a trap to get more easy sweety subscription money. If you just want a beginner level introduction to python, just the four previous courses are enough. If you want a python specialization, this so called "beginner" specialization does NOT WORTH THE EFFORT. GO FOR ANOTHER COURSE.

By Ronan R

Apr 1, 2020

This course was a huge disappointment. After going through the first courses of the Python 3 Programming Specialisation, you would expect more of the final module. The subjects covered are extremely interesting and were basically the reason I started this specialisation in the first place, but they are not really taught. This could have easily been a 8-week course, but they did everything in a hurry and crammed the most interesting subjects in 3 badly organised weeks.

There is no teaching method here. There is only a programmer that shows you he can do some cool things with these python modules and then asks you: "Can you do the same?".

There is no supporting presentation, only a video of his screen while using an online tool (that glitches a lot and has no real use for you in the real world) while he's speaking so fast about the code he is going to write that you will have to pause and go back several times to read what that code is doing and try to figure it out by yourself. Actually, the videos themselves are a waste of time, since everything he says is written as comments in the tool you're going to use anyway, because he was just reading everything that's written there.

I fully support the logic that a programmer should go and read the documentation of the modules in order to understand better how the functions and methods and classes work, but we already do that everyday. He even says some of that documentation is incomplete and badly written. I came here looking for a course, a teacher, BECAUSE the documentation is not enough. Having someone to actually guide you through those codes and documentation is what I expect from a programming teacher. This course DOES NOT deliver that. What this course gives, you can get by going to any forum on the web.

By Kenneth S

Nov 29, 2019

One of the worst courses I've taken in a long time. Chris Brooks has a terrible teaching style and leaves you hanging with either too much (confusing) info, or not enough (frustrating) info. By Flow Theory, this is completely counter to educational research. The project really SHOULD be fun and enjoyable, but instead it's a frustrating mess that you don't want to think about once it's over.

By Jeffrey C

Mar 31, 2020

The first four courses of this specialization were great. This course, however, is aimless and low effort. Ideally, this course would force the student to apply everything they learned in the first 4 classes to produce something interesting. Instead, it's a meandering skimming of a few image processing libraries. Was the goal to teach us how to read Python documentation? There are plenty of other ways to do that with simpler libraries that don't require long detours into abstract details about graphics.

Lectures and instructions are riddled with errors. One video features a head shot of the instructor giving a verbal narration of navigating a console window. It feels like they meant to overlay it with someone actually performing the actions on a computer, but instead you get to imagine in your mind what a command prompt must look like. The python installation instruction video is wrong top to bottom - while the narrator reads out the instructions, the video actually shows them failing on input... but the instructor moves on. The final project is too complicated for the Coursera Jupyter environment and it takes ages to run. You can install the environment on your own computer, but the instructions for that are wrong too and don't have the right libraries (one isn't available for Windows!). Some of the lecture videos are the instructor literally reading, word for word, the Jupyter notebook pages.

Plenty of students have posted to the message boards with solutions to the many issues with the materials, some going back a year. But nobody seems to want to actually update the course. I powered through the technical issues and nonsensical videos in this course to get the specialization, but I feel no more accomplished for it, as the challenge in this course is to figure out what the heck you're supposed to be learning here.

By Jeff B

Mar 31, 2020

I'm writing this in hopes that the content owners take note and make some adjustments. After weaning us off of the on-line workbook (which is a very nice tool) and completing the previous four courses (which were very well done), this course takes a jarring turn. For starters, the video to install Python went so far into the weeds I had to uninstall everything I was told to install and search for assistance from the web. Because I work full time, I lost about a week just undoing and redoing the installation in my spare time. The video lectures are average, although I found myself doing searches several times to understand why something was coded the way it was. The Jupyter notebook they provide is unexpectedly unstable; I found myself copying all of my code to a separate file after losing portions of it, and more than once the kernel stopped and restarted itself, which really required a reboot to get it working properly again. My final observation is the scoring - it's entirely pass or fail. I don't agree with this - the project has several facets that I think can and should be assessed individually. Yes, I understand that some university courses choose to grade a final project in such a way, but in a case like this I don't think it's appropriate. At one point, my frustration level was high enough that I seriously considered forgoing the specialization certificate because I was spending too much time on it. The previous four courses were excellent; please don't conclude the student's experience with a capstone project that feels like it was launched and then neglected. It's like the specialization's Kingdom of the Crystal Skull.

By Luis A V A

Nov 5, 2019

Rushed and not well explained. Project can be finished If you are a mid python programmer.

By Luis M

Jan 3, 2020


1. Huge difficulty gap between course 4 and course 5, like 1+1 to rocket science kind.

2. It's definitely not beginner level, I even doubt whether it counts as intermediate level, because I had other intermediate level courses before, never felt like this.

3. The instructions in the last exercise are ambiguous and confusing. No tips, no milestone, makes me unable to know if I am on the right track, and extreme frustrated.

Conclusion: I don't know why this course counts as beginner level, it definitely isn't. For me it's like a trap to get more easy sweety subscription money. If you just want a beginner level introduction to python, just the four previous courses are enough. If you want a python specialization, this so called "beginner" specialization does NOT WORTH THE EFFORT. GO FOR ANOTHER COURSE.

By Akarsh M

Feb 15, 2021

This course doesn't teach. It just shows a demonstration of some function calls, and then tells students to use the internet to figure out the rest. That wouldn't be a problem on its own, but there is no guidance on how to succeed in the final project, which is very difficult, without proper guidance. Ultimately the 'trick' here is just to brute force the problem. You pass in a 7200x6300 large image straight into pytesseract to run ocr on it. no segmentation, no nothing sophisticated. just pass in all these huge images straight into the pytesseract and opencv algos, twiddle your thumbs for 15 minutes and then search for a couple of striks in the OCR output and then display the results of the opencv face detection.

in hindsight, I didn't really learn anything of value from this course. i didn't even learn pytesseract or opencv. i just hacked at it to get it to give me the outptus i needed to pass the assignment. i spent over 20 hours reading docs on these libraries, and trial and error running code, getting tracebacks, debugging etc. finishing the assignment felt like a relief, not an achievement.

the discussion forums are completely useless. there is absolutely no discussion there at all. and the only active "moderator" / "teaching assistant" is an obnoxious individual who has turned the forum into a small private fiefdom.

By Aku-Jaakko S

Feb 6, 2020

The biggest flaw of the course is its nonexistent teaching: the instructor does not even try to explain the concepts and cause-effect relationships needed to understand the course topics. The lectures don't really help you at all in the final project (which, better explained, would actually be quite nice).

The learner is required to know way too much on way too many levels; look up information, know Ph.D. level terminology of image manipulation to digest that information, be aware (in advance) of the limitations of accessing a certain file type using a library that only works with certain data types and so forth – it is just too much without any framework provided by the teaching staff.

In addition the forum is flooded with "Please review" messages, making it time-consuming to find any useful information (which there is, thanks to other learners!). Teaching staff's replies are generally hard to follow and, more often than not, unfriendly.

I can't recommend anybody to take this course as a stand-alone, there is dozens of better hands-on courses for Python out there.

By Aleksandar U

Jan 12, 2021

The most confusing part is how is this course still part of the Specialization!!? After all the negative reviews is has gotten. I loved every 1 of the 4 courses previous to that one - but this one dissapinted.

By Zhen Z

Dec 11, 2019

I can see why this course has a sharp rating drop compared to the previous four in this specialization. While the previous four courses provided a great enviroment for zero background beginners to built up their basic Python skill set, the way students achieve a successful final project was always through intensive guiding (almost translating the code you're going to write completely in English with names of variables and objects all set for you). In this final course students are half-way pushed more towards the wild to work on something more like real-life projects that you may encouter at work and put your Python skills and programming mindset to a real test.

It's much more difficult compared to the previous four and students need to take more initiatives to actively think as a real programmer. There's no single way in avhieving the goal; and there's so much fun to read others' works to get inspired by different approaches to the same problem.

By Habib H S

Jul 23, 2019

Not as great as previous courses... :(

By Matthew A

Feb 12, 2021

This course is a massive disappointment at the end of an otherwise high quality specialization. Unless you really feel that you must get the certificate for the full specialization, your time is better spent elsewhere. Bottom line, this course is bad enough that I will avoid taking anything from this instructor or using the Jupyter programming environment again.

1. The Jupyter programming environment used in this course is awful. The final project (90% of the course grade) takes literally hours to execute after your code is complete. Most of the time, the service will fail and require a restart before the code finishes. It doesn't matter if there are any errors in your code. Jupyter probably will time out before you can actually execute the entire program, even though your program won't be much more than 100 lines long.

2. The instructors could have helped this by choosing a better focus area, but instead, the course focuses on intensive image processing that uses a lot of memory and processing power. I'm not sure why they made this choice, but it doesn't work well for something that is required to be completed in an online environment.

3. This course is poorly designed. One of the main goals of this course, as listed in the introduction, is to teach students to use program documentation to build their own code. Unfortunately, the tesseract and opencv libraries (two of the three main libraries in the course) are not well documented - the instructor says as much during the course - and the student is effectively reliant on the instructor's background knowledge to make them work. I don't know why these specific libraries were chosen, but the experience would be better if they were changed to focus on something that could actually give the student independent experience.

I could continue, but it would be more of the same. I have been very pleased with all of the other Python courses I've taken from the University of Michigan (10 courses in two specializations), but this one is nowhere close to the quality of the others.

By Simona O

Jul 2, 2020

There were a lot of negative reviews for this course. And yes, this one was challenging for such a newbie as I am. When I read through first assignment (only 10 % for final grade!), I felt despair: how should I complete this one, I have no idea where to start and what to do. But then I was determined to at least try. I broke the problem into pieces and solved it bit by bit. And I finished it! I'm sure the road I took was not the easiest or the prettiest, but I did it, and it looked the way it supposed to look. It gave me confidence that I can become a programmer one day, and it gave me joy just for completing it. Maybe I'll never use the libraries I used in this course (as so many complains here), but it was a good learning experience - no more learning wheels to ride this bike - just go!

By Paul M

Jun 24, 2020

This last course is much more challenging than the prior four, but provides a very good launch pad for taking what you've learned and getting you actually using the skills in building Python code.

By jim c

Dec 3, 2019

Course was put together hastily and it shows. They were very late in putting it together while still charging everyone $50/month. Then the assignments were not very well explained, and the final assignment wasn't well explained or thought out, and had to be developed on the desktop as the Jupyter notebook didn't cut it. Overall I'd give this course a C, and it was definitely not up the standards I would have expected from the University of Michigan. Dr. Chuck from Python for Everybody would have done a much better job.

By Pepe L

Jun 14, 2019

I think the material was not so interesting. At least it didn't make me feel like working on it. The lecturer keeps reading stuff from he pre-written text.

By Kurt

Jun 12, 2019

This course requires additional knowledge, require the student to find information online or other methods. The projects are creative and interesting but I hope the description and the requirements could be more detailed.

By Nicoletta H

Jan 24, 2020

I just finished this course and the whole specialization and I cannot agree with the negative reviews. The four courses before built a strong foundation in python programming. It is the goal of capstone courses to create a real-life like situation where the programmer needs to help herself and do the research on her own. If one is not willing to do the work, then maybe programming isn't her thing. I found this course challenging, but absolutely doable. It's an awesome feeling when you finally get your certificate. I've done several courses by the Michigan School of Information and I will continue with Statistics and Data Science.

By ram k k

May 4, 2019