Build a Deep CNN Image Classifier with ANY Images

2024 ж. 16 Мам.
530 957 Рет қаралды

Get the Code github.com/nicknochnack/Image...
So...you wanna build your own image classifier eh? Well in this tutorial you're going to learn how to do exactly that...FROM SCRATCH using Python, Tensorflow and Keras. But best yet, you can do it on virtually any dataset. Go on, give it a go!
Links
Sigmoid Activation: en.wikipedia.org/wiki/Sigmoid...
Relu Activation: en.wikipedia.org/wiki/Rectifi...)
Image Downloader Extension: chrome.google.com/webstore/de...
Conv2D Layer: www.tensorflow.org/api_docs/p...
MaxPooling Layer: keras.io/api/layers/pooling_l...
Chapters
0:00 - Start
0:28 - Explainer
1:19 - PART 1: Building a Data Pipeline
3:08 - Installing Dependencies
8:30 - Getting Data from Google Images
23:12 - Load Data using Keras Utils
33:22 - PART 2: Preprocessing Data
35:56 - Scaling Images
42:23 - Partitioning the Dataset
47:34 - PART 3: Building the Deep Neural Network
48:21 - Build the Network
1:02:32 - Training the DNN
1:06:37 - Plotting Model Performance
1:09:50 - PART 4: Evaluating Perofmrnace
1:10:38 - Evaluating on the Test Partition
1:13:59 - Testing on New Data
1:20:39 - PART 5: Saving the Model
1:21:08 - Saving the model as h5 file
1:24:43 - Wrap Up
Oh, and don't forget to connect with me!
LinkedIn: bit.ly/324Epgo
Facebook: bit.ly/3mB1sZD
GitHub: bit.ly/3mDJllD
Patreon: bit.ly/2OCn3UW
Join the Discussion on Discord: bit.ly/3dQiZsV
Happy coding!
Nick
P.s. Let me know how you go and drop a comment if you need a hand!
#deeplearning #python

Пікірлер
  • This. Was. AMAZING! Oh my gosh. Thank you for such for this tutorial. I've been wanting to get into machine learning for so long, but never knew where to start or how to work these models. With how long this video was and how excellent your commentary was, it helped so much! I plan to watch a ton of your videos about creating some more models.

    @TheSakyoGamer@TheSakyoGamer Жыл бұрын
  • This tutorial is amazing, not only are instructions easy to follow but sufficient explanation is provided so I know why each line of code was added. Great Job!

    @marti-nz@marti-nz Жыл бұрын
  • Absolutely brilliant. I will use this structural approach in my third paper for my PhD. Thanks so much

    @salvinprasad8592@salvinprasad8592 Жыл бұрын
  • I really love these longer tutorials. You explained things so well in this one that I feel like AI development finally clicked for me, not just in terms of this specific application, but also in general. I would understand if you'd be worried about length vs entertainment, but honestly you teach so well and you are so enthusiastic I don't think that should even be a concern. Thank you so much! :)

    @KarrsonHeumann@KarrsonHeumann10 ай бұрын
    • Agreed !! Waiting for such vids

      @lemon_and_berry@lemon_and_berryАй бұрын
  • Thanks a lot Nick! I like how you skim through the mathematical concepts behind your code. Very informative! I'm watching the whole playlist :)

    @mohamedgaal5340@mohamedgaal53402 ай бұрын
  • Wow! It was awesome. I built my first CNN architecture with the help of this video.

    @hugehammer2706@hugehammer2706Ай бұрын
  • Your detailed explanation has led me to a better understanding of the matter... Thank you...

    @bratutub3@bratutub32 жыл бұрын
  • Amazing Tutorial, highly underrated channel, will share this with my friends.

    @mahendrakergaurav5867@mahendrakergaurav5867 Жыл бұрын
  • Awesome video. Love the way you explained all of the steps in great common sense detail. 5 Stars 😊

    @photorealm@photorealm Жыл бұрын
  • Realmente increíble, muy explicativo paso a paso y es de los pocos tutoriales que puedes seguir sin tener ninguna complicación. Gracias por compartir con todos.

    @joelmaiza@joelmaiza Жыл бұрын
  • Its rare to see someone explain in detail every step of the way! Great tutorial!

    @pedrobizzotto556@pedrobizzotto556 Жыл бұрын
    • But not _too_ much detail. It's a good balance of theory and practice.

      @andybrice2711@andybrice2711Ай бұрын
  • This was an amazing tut for a beginner like me. Thank you man... Great Explaination and Great Visualisation. Each part of your code was explained perfectly.

    @ubaidabbas8175@ubaidabbas81755 күн бұрын
  • As a non coder person I instantly subscribed because of the simplicity you showed by your teaching skills. Thanks man, love to see more content from you.

    @venomlovekitties@venomlovekitties Жыл бұрын
    • as a CV engineer, I instantly hit the dislike button under this video

      @CantPickTheNameIwant@CantPickTheNameIwant11 ай бұрын
    • @@CantPickTheNameIwant that’s what I wanted to say 😂😂big source of misinformations on this channel, specifically in this video

      @mihai3678@mihai367811 ай бұрын
    • @@mihai3678 Can you tell which one is misinformation and how should it be? So I can know which one that I should look for... THank you....

      @daryladhityahenry@daryladhityahenry9 ай бұрын
    • @@mihai3678 how come? do you think you could explain?

      @akikabanu5885@akikabanu58856 ай бұрын
    • @@CantPickTheNameIwant at least you should clear your point if you said it

      @muhammaduseram9405@muhammaduseram94053 ай бұрын
  • Amazing job on these videos! Would love to see a tutorial featuring 9 or more classes, thanks!

    @dimasalangxt3482@dimasalangxt34822 жыл бұрын
    • I second that!!

      @leonp5281@leonp5281 Жыл бұрын
    • please Nicholas

      @qualitycontrol716@qualitycontrol716 Жыл бұрын
    • ??? I just kept adding classes, when it hits 9 it just moves onto 10....

      @danielleivy8180@danielleivy8180 Жыл бұрын
    • Yes, Nicholas please! multiclass tutorial from you is needed=) Thank you

      @poisonedexistence3027@poisonedexistence3027 Жыл бұрын
  • Amazing tutorial, clear and easy to follow

    @firenoo@firenoo2 жыл бұрын
  • This tutorial is live savior. Recently I am doing my thesis on medical image processing and this video is an absolute guideline. Thanks a ton Nicholas :3

    @adowanshahriar3623@adowanshahriar3623 Жыл бұрын
    • yess !!! do u have any idea what changes should be done in the NN foro multi classes ??

      @samarth2915@samarth2915 Жыл бұрын
    • @@samarth2915 for multiclass classification, following changes need to be made. 1) the activation function for the output layer in ANN will be Softmax 2) The loss function would be Categorical CrossEntropy(). 3) if you use this shown method of the data pipeline, then you will have to create multiple subfolders for each class in the multi-class classification problem.

      @priyam66@priyam66 Жыл бұрын
  • I love your videos, keep it up! I would like for you to make a video explaining about how to handle false positives with objects we don't want to detect.

    @eru3890@eru38902 жыл бұрын
  • Hello Nick, thank you for this awesome tutorial, I learned a lot. I was wondering if you published another tutorial with more classes involved? (at 13:01) Thanks

    Жыл бұрын
  • Best CNN tutorial I've never seen

    @maximeentsi2205@maximeentsi22052 жыл бұрын
  • Thanks man, exactly how i will like to learn. Everypart of the code explained and visualised. No assumption ☺

    @Nice_lolat@Nice_lolat9 ай бұрын
  • Thank you so much for making this tutorial! It was so, so helpful!

    @allisonmoczynski5655@allisonmoczynski5655Ай бұрын
  • Would love to see some more stuff on deep reinforcement learning! :)

    @Gordonias@Gordonias2 жыл бұрын
  • It was very useful video. Thank you very much! This video answered my questions about preparing image input data for machine learning.

    @aysegulsezen4280@aysegulsezen428011 ай бұрын
  • Incredible Tutorial Nick!!

    @ProjectSibanda@ProjectSibanda Жыл бұрын
  • You are really a great teacher and I love the way you organize your code. Keep it up Nic

    @somtoogbe108@somtoogbe1084 ай бұрын
  • This is truly a fantastic tutorial. I had a working model in just a few hours. I didn't realize it could be done that quickly! Thank you!

    @alextotheroh8071@alextotheroh80717 ай бұрын
  • Nicholas this video is one of the best tutorials I have seen on image classification. Thank you

    @russstephanson6987@russstephanson69875 ай бұрын
  • Nick, thank you so much for the valuable tutorial. really appreciated. 👍

    @faizansiddiqui4901@faizansiddiqui4901 Жыл бұрын
  • Woow, What a perfect explanation. Thank you so much for this tutorial.

    @hassanbabaousmail194@hassanbabaousmail194 Жыл бұрын
  • ay bro this is the best explanation i've found so far. Thanks

    @senaldharmasiri8990@senaldharmasiri8990 Жыл бұрын
  • Thanks for sharing, amazing tutorial!

    @rodrigopennacchi2451@rodrigopennacchi24518 ай бұрын
  • Exceptional talent for teaching! Informative, clear, and I love the pace of it. No fluff and to the point. Thank you and great job!

    @aminaleali7161@aminaleali71616 ай бұрын
  • Never seen such a comprehensive tutorial.. just a beginner in ML and DL so such tutorials help alot.. thank you

    @user-dz5ic4mw3w@user-dz5ic4mw3w Жыл бұрын
  • Amazing explanation, Im using this for thesis project, I'll let you know how well it went 👍

    @filixzs@filixzs Жыл бұрын
  • I've learned more in 30mins than in my image processing class

    @eddyateye810@eddyateye8108 ай бұрын
  • You're the man Nicholas! Thanks for the video!

    @patricklynch6871@patricklynch6871 Жыл бұрын
  • Massive video Nicholas!!! I'm very grateful!!

    @navarclaudio@navarclaudio Жыл бұрын
  • thanks for the tutorial....well explained, i tried it and it's working perfect. Thanks Nicholas

    @okohfranklin.c@okohfranklin.c Жыл бұрын
  • Finally some good tutorial, thank you Sir!

    @kokylolify@kokylolify Жыл бұрын
  • Hey Nicholas, that is an amzing tutorial, i really learnt tonnes to take me to my next learning of ML. Thanks so much.💯

    @lubwamaemmanuel7743@lubwamaemmanuel7743Ай бұрын
  • Great Tutorial! As you said a tutorial on callbacks would be great. Thanks Nicholas!

    @vigneshm4916@vigneshm49162 жыл бұрын
    • Yeah, wish I spent some more time on it in this vid. You got it @Vignesh!

      @NicholasRenotte@NicholasRenotte2 жыл бұрын
  • Thanks Nicholas, i'll try it

    @brunospfc8511@brunospfc85112 жыл бұрын
  • Thank you for the amazing insightful tutorial

    @THE8SFN@THE8SFN Жыл бұрын
  • Amazing tutorial! Thanks Nicholas

    @priyanshgupta1902@priyanshgupta1902 Жыл бұрын
  • Amazing video with perfect explanation I wonder if you can make some kind of tutorial with image classification using RNN in the future

    @mikohalurangersid-green493@mikohalurangersid-green4932 жыл бұрын
  • Thank you so much for this Tutorial!! IT IS THE BEST !! P.S. A side note for the recent viewer, while compiling the model, use the command: model.compile('adam', loss = tf.losses.sparse_categorical_crossentropy, metrics = ['accuracy']) This change caters to the recent change in the naming conventions and ensures that the saved .h5 model runs when loaded

    @atharvmunot8305@atharvmunot8305Ай бұрын
    • OMG you're a lifesaver!

      @donguyengiac5046@donguyengiac504618 күн бұрын
  • it was an amazing explanation, glad I visited this channel.

    @pritamrajbhar9504@pritamrajbhar9504 Жыл бұрын
  • Sir, this...was...amazing. Thank You! ✨

    @martinology5215@martinology5215 Жыл бұрын
  • Brilliant!!!!!! Man thanks a lot, not finished yet. Allthough it is awesome so farr, learned a lot.

    @efeaydemir1413@efeaydemir1413 Жыл бұрын
  • Thank you for providing such great experience, this helped alot

    @abcxyz-ht3ch@abcxyz-ht3ch Жыл бұрын
  • Thank you so much for this video. You really explained every bit of it.

    @abhishekfnu7455@abhishekfnu74554 ай бұрын
  • You are goated with the sauce

    @samherold9970@samherold99708 ай бұрын
  • A nice practical start to this topic. It makes me look forward to learning more of the details in order to troubleshoot and train correctly. Even though I was following along with Nicholas, my neural network was making incorrect predictions. I reran all my code from scratch and the same failed predictions. The third time I trained from scratch, it seems like the predictions were more likely to be accurate. It might be because my image downloader downloaded less images than Nicholas. I only had 3 batches of training data. I guess the point of all this is that if you are failing to get accurate predictions, maybe try rerunning your code to get different fit parameters, and/or get more data.

    @Huapua@Huapua Жыл бұрын
  • this is very well done sir! thanks for the great content!

    @amirhosseinkarimi1760@amirhosseinkarimi17606 ай бұрын
  • Nich, would please also make theory explaining CNN, object detection, their metrics & hyperparameter tuing

    @arnabghosh5547@arnabghosh55472 жыл бұрын
    • Ohhhh man, theory isn't really my fav but I'll see what I can do!

      @NicholasRenotte@NicholasRenotte2 жыл бұрын
  • Wow, I didn’t know Neon did programming videos too. You’re really smart. Clap 👏

    @Alice8000@Alice80004 ай бұрын
  • Thank you very much Nicholas, I have a CNN image classification project. This is tons of help.

    @amc8437@amc843710 ай бұрын
  • Great content and I love that you speak proper English! I am not a native speaker and had my fill of Australian and Indian accents.

    @Christian-dd2qm@Christian-dd2qm Жыл бұрын
  • Wow!! This is the best tutorial. Thank you for making this. Please do 1 with multi classes classification, regularization, dropouts, normalization(basically tuning parameters) and confusion matric.😃

    @sanjanatarekar5942@sanjanatarekar5942 Жыл бұрын
  • The great explanation I've ever seen! Thanks a lot!

    @ameer-alahmadi@ameer-alahmadi Жыл бұрын
  • Thank you very much for this tutorial you really made my life easy👌🏼

    @user-ro5mc9jm1b@user-ro5mc9jm1b Жыл бұрын
  • You are so helpful! Amazing teaching!

    @sapphirenoctua@sapphirenoctua10 ай бұрын
  • This video made me happy. Thank you sensei.

    @bibinlouis4927@bibinlouis49277 ай бұрын
  • Fantastic tutorial Nicholas, every step explained as simply as conceivably possible. Thank you!

    @borutcerne@borutcerne11 ай бұрын
  • Outstanding tutorial

    @richardcasey4439@richardcasey44392 күн бұрын
  • Dear sir, Your video is so awesome and you deliver each point very clearly and it need more video related this topics and student want to be more learn to your channel I hope you will be share more video such kind of work... Good job sir👍

    @ziddimalikziddimalik1288@ziddimalikziddimalik1288 Жыл бұрын
  • Amazing, you are my hero Nich, bless you ❤

    @dragway0385@dragway0385 Жыл бұрын
  • thank you so much sir. you are helping so many people.

    @aldrinjohnencina6153@aldrinjohnencina6153 Жыл бұрын
  • thank you very much for the nice explanations! you explain all the details!!!! thank you again, I am learning a lot!!

    @shayestebazsefidpar5584@shayestebazsefidpar5584 Жыл бұрын
  • Amazinly clear, thanks. Love this tutorial. One of the best i've seen. Do you have any paid courses?

    @okopyl@okopyl Жыл бұрын
  • your tutorial is great. looking for part 2

    @terwasevictorsesugh3902@terwasevictorsesugh3902Ай бұрын
  • Incredible tutorial.

    @absba9@absba914 күн бұрын
  • The best tf explanation I've ever seen, big thumb up!

    @dariusdevo9554@dariusdevo9554 Жыл бұрын
  • Thank you my friend for your excellent work!

    @raffaelemasucci4082@raffaelemasucci40827 ай бұрын
  • Thanks man! Finally finished this!

    @atharvpal7038@atharvpal70384 ай бұрын
  • would really appreciate one with more classes! Trying to make an AI for SET

    @FandangoJepZ@FandangoJepZ2 жыл бұрын
  • So interesting ,Thank you for your video. As a beginnger for python, I can build a model. It's amazing!!!

    @rikiriki43@rikiriki4310 ай бұрын
  • Nice! Imagine if we could build a classifier that can spot Base64 in a screen capture and extract it accordingly. In digital Forensics this could be quite handy in cases where base encoding is used to hide particular image data.

    @lancemarchetti8673@lancemarchetti86734 ай бұрын
  • awesome tutorial! would love a video on how to use more than two classes

    @dimitrimattheis3740@dimitrimattheis3740 Жыл бұрын
  • Hi Nick, You are right you were dividing the data twice by 255 so it came out to be 0.0039. (1/255 = 0.0039). Thanks for the video. Happy learning!.

    @sanjayravi8181@sanjayravi8181 Жыл бұрын
  • Amazing video !! , enjoyed every second of it

    @lemon_and_berry@lemon_and_berryАй бұрын
  • Your videos are top notch, explicit and yet humorous at the same time😅. YOu make learning AI easy. Thanks Nic.

    @numforfrank9205@numforfrank9205 Жыл бұрын
  • THAT'S A MASTERPIECE!!! THANKS A LOT!

    @zuhal6900@zuhal690029 күн бұрын
  • Awosome work NICHOLAS , Please make video for the multiple classes classifier too.

    @manishtanwar8578@manishtanwar8578 Жыл бұрын
  • Dude makes DL actually fun to learn! I can't learn anything from the lecturers at my college because they talked to much and didn't even explain anything! Thanks man

    @bl4z3_kanazaki@bl4z3_kanazaki Жыл бұрын
  • Amazing tutorial!

    @gblazerify@gblazerifyАй бұрын
  • I love this tutorial. Out of curiosity, can this be applied with nonfacial models? ex. different types of buildings, cars, etc.

    @melanieb115@melanieb1158 ай бұрын
  • Well explained!! Would love to see you do the same for satellite imageries (crop identification, urban change detection,etc)

    @housemdaaji4884@housemdaaji4884 Жыл бұрын
    • yes please!

      @alexiadeboynes4656@alexiadeboynes4656 Жыл бұрын
  • Awesome very detailed tutorial. Thanks :)

    @ravd123@ravd12311 ай бұрын
  • Thank you so much! Great tutorial!

    @alexiadeboynes4656@alexiadeboynes4656 Жыл бұрын
  • This tutorial is legendary. I learned a lot and do appreciate this!

    @misunsong291@misunsong291 Жыл бұрын
  • Hi Nicholas great session and have learned a lot, If possible in the future can you please create a video on image segmentation and assigning clusters to it , This will be helpful to understand that from group of images can we cluster similar images. thanks and once again thank you for sharing your learning

    @abhayjoshi2121@abhayjoshi2121 Жыл бұрын
  • Another amazing video! 👏👏👏

    @fassoyangce1075@fassoyangce10752 жыл бұрын
  • your coding is fantastics and easy to follow

    @archiellagas6384@archiellagas6384 Жыл бұрын
  • Hallo Nick. Thank you so much for your work! you are literally changing people s life with you channel! I wanted to ask if I could use this deep cnn to detect vertical landmarks on blurred images with depth information. The landmarks are on the walls of a building in the background of the images.

    @goufackkentsaleandrinlebel8826@goufackkentsaleandrinlebel88262 жыл бұрын
  • Excellent tutorial! thank you very much! 🤓

    @urd4651@urd4651 Жыл бұрын
  • Hi Nicholas, the tutorial is fantastic. There is a small bug in the code. The data object is always shuffling the data so there is no difference between training and validation data. To fix this bug it is necessary to change these lines: 1. Edit the line data = tf.keras.utils.image_dataset_from_directory('data'). It should be: data = tf.keras.utils.image_dataset_from_directory('data', shuffle=False,) 2. After this line add the following: data = data.shuffle(1000, seed=100, reshuffle_each_iteration=False) Without this correction the val_accuracy will always be 1 as there is the same data. (The problem arises when calling the take method because the data is reshuffled.)

    @AlvaroPerezLuque@AlvaroPerezLuque Жыл бұрын
    • Are you sure that this is correct? When testing this although this is stopping the accuracy becoming 100%, it's validation accuracey is 1.00 from the start??

      @jamesmccannon7769@jamesmccannon7769 Жыл бұрын
    • There is another bug even bigger than that, he is doing data leakage. When he download the images from google, there are a lot of them duplicated or triplicated, so when he splits the data, same image is in all three divisions (train, val and test), for sure, so is its requeried to purge the data before all the process.

      @j220493@j220493 Жыл бұрын
  • As a student who is working on an image classification project, I learn a lot here and it was a very nice and interactive explantation. Thank You Nick!

    @yosephawoke9584@yosephawoke95848 ай бұрын
  • This is sooo good.Everything is easy to understand.Can you also do a video on building CNN-LSTM hybrid model for image classification.If you can do so it would be a big help 🥺.

    @ashie4239@ashie4239 Жыл бұрын
  • wow the great video explanation, I ever seen before ..... thanks

    @diagnointelligent2332@diagnointelligent2332 Жыл бұрын
KZhead