Python Face Recognition (Beginner Tutorial)

Sdílet
Vložit
  • čas přidán 21. 01. 2024
  • Let's walk through building facial recognition from completely scratch! We will learn about Python facial recognition libraries, embeddings and vectors, and more! All the code is in Google Colab so it'll be easy for you to recreate.
    Aiven is the trusted open-source data platform.
    Get $400 in free credits for Aiven using this link: bit.ly/48jMVZ6
    Enjoy :)
    Join My Newsletter for Regular AI Updates 👇🏼
    www.matthewberman.com
    Need AI Consulting? ✅
    forwardfuture.ai/
    Rent a GPU (MassedCompute) 🚀
    bit.ly/matthew-berman-youtube
    USE CODE "MatthewBerman" for 50% discount
    My Links 🔗
    👉🏻 Subscribe: / @matthew_berman
    👉🏻 Twitter: / matthewberman
    👉🏻 Discord: / discord
    👉🏻 Patreon: / matthewberman
    Media/Sponsorship Inquiries 📈
    bit.ly/44TC45V
    Links:
    Google Colab Code - colab.research.google.com/dri...
    Aiven Tutorial - bit.ly/428UyQ8
    Face Recognition Dataset - github.com/kipr/opencv/blob/m...
  • Věda a technologie

Komentáře • 47

  • @salehmir9205
    @salehmir9205 Před 5 měsíci +8

    I love that instead of making news about AI or other exciting things, you're actually putting time to create useful tutorials. I find this refreshing.

  • @CorbinChandler-jp6tp
    @CorbinChandler-jp6tp Před 19 hodinami

    Ngl your probably one of the best coding youtubers I have ever seen. Very specific, but you put it in very easy words and short sentences.

  • @warezit
    @warezit Před 5 měsíci +10

    🎯 Key Takeaways for quick navigation:
    00:00 🏗️ *Building a Facial Recognition Script in Python*
    - Overview of creating a facial recognition script with machine learning,
    - Introduction to the tutorial and sponsorship by Aiven.
    00:43 📸 *Image Recognition Process Explained*
    - Outline of the facial recognition process using an initial photo,
    - Details on detecting faces, calculating embeddings, and storing data in PostgreSQL.
    02:48 💻 *Coding Facial Recognition*
    - Steps to convert images into vector embeddings and match faces,
    - Comparison between text and image vector embeddings for identifying similarity.
    03:28 🧰 *Setting Up Libraries and Algorithms*
    - Installing required Python libraries and loading algorithms for face detection in images,
    - Importing and applying a pre-written algorithm to identify faces.
    06:43 🗃️ *Extracting Faces and Converting to Embeddings*
    - Explanation of extracting individual faces from the source image,
    - Initial steps to convert those faces into vector embeddings for recognition.
    07:10 ☁️ *Provisioning a Vector Database with Aiven*
    - Using Aiven to create and host a vector database,
    - Directions for setting up a Postgres service with Aiven platform.
    08:47 🔧 *Creating and Connecting to the Database*
    - Instructions for connecting to the Postgres database and creating essential database elements,
    - Implementation of the Vector database extension and table.
    09:28 🌐 *Converting Images to Embeddings for Database*
    - Process for converting image files from the source to vectors,
    - Inserting embedding data into the vector database for retrieval.
    11:19 🔍 *Performing Similarity Search and Recognition*
    - Comparing new images to existing database embeddings to find matches,
    - Successful matching of a different image of the same person using vector similarity.
    12:01 🚀 *Extending Code and Exploring Further Applications*
    - Encouragement to extend the provided code for more sophisticated projects,
    - Acknowledgment of Aiven's sponsorship and benefits offered for database services.
    Made with HARPA AI

  • @themax2go
    @themax2go Před 5 měsíci +2

    what's the benefit of using postgreSql vectorDb vs chromadb?

  • @aimademerich
    @aimademerich Před 5 měsíci

    Really loving the latest content (in my best Matthew Berman voice) “Bravo” 👏 😁 this is phenomenal thank you 🙏🏽

  • @nicolaswebful
    @nicolaswebful Před 3 měsíci +1

    hi, instead of vector in postgres what datatype to use in mysql ?

  • @DeonBands
    @DeonBands Před 5 měsíci +4

    In previous video you asked what we would like to see with autogenstudio. How about adding this as a skill to the agents.

  • @___x__x_r___xa__x_____f______

    Hey I’m just wondering if i could get a rating of match probability, you know, to understand how much they look alike a face to another face?

  • @abidansari-qq4wd
    @abidansari-qq4wd Před 3 měsíci

    Hello!
    If it's possible, could you explain how to extract faces to identify from a webcam in the final phase, instead of a given photo? Please reply

  • @RicusNortje
    @RicusNortje Před 5 měsíci +9

    I still want to hook up a camera to an actuator on my sliding door that will open and close it for my 2 dalmatians, but I want it to regocnise them and not just any dog etc. This is a good step in that direction

    • @IntentStore
      @IntentStore Před 5 měsíci +2

      Have you thought about just putting an rfid tag or something on their collars?
      It looks like every band above a few MHz should have a good detection distance for a raspberry pi inside your house to sense and not super power demanding.

    • @RicusNortje
      @RicusNortje Před 5 měsíci

      @IntentStore that's a good idea but they don't wear collars when they are in the house. (Don't worry, they are chipped).

    • @redfoothedude
      @redfoothedude Před 4 měsíci

      you can do it... just say something like if "dogs_name" == "your_dogs_name" then call the open door function

  • @AI_Robotics
    @AI_Robotics Před 5 měsíci +1

    Matthew, can you make a video or point me to one you made on the conversion of image to embeddings? What does the data structure look like, what is algorithm.

  • @MoneyWealthBusinessMastermind

    how do i deploy it and integrate with a website/mobile app?

  • @g.s.3389
    @g.s.3389 Před 5 měsíci

    imgbeddings has been trained on squared images only, I do not see in your code anything that create a square image from the face recognition output from cascade.
    it is a nice idea to use imagebeddings with a vectorial DB.
    nice job!

  • @StephenRayner
    @StephenRayner Před 5 měsíci

    Gratz on sponsor

  • @ClaudioNarra
    @ClaudioNarra Před 3 měsíci

    Super ! Thx

  • @RonLWilson
    @RonLWilson Před 5 měsíci +1

    It would seem that one could employ more complex metric for computing those distances where the distance is a function of tree node distance of some sort of ontology tree.
    Thus if one has a tree with two branches, say Sam (1.1) and John (1.2)
    and another tree that has food and under that pizza (2.1) and pie (2.2)
    and then another tree that has food (3.) and movies (3.2) and another tree loves(4.1.1), likes (4.1.2) , eats (4.2.1), and cooks (4.2.2)
    then we compare the sentences
    1. Sam (1.1) loves (4.1.1) movies (4. 2.1),
    2. Sam (1.1) loves (4.1.1) pizza (2.1)
    3. John (1.2) likes (4.1.2) pie (2.2)
    4. John (1.2) eats (4.2.1) pie (2.2)
    5. John (1.2) cooks (4.2.2) pizza (2.1)
    where the distances are the number of nodes between two nodes such that 1.1 is one away from 1.2 where 1.1 would be two away from 2.1 (1.0 to 2.1) etc.
    One then can compute distances based on these and get more nuanced matches.
    I imagine there is name for this type of distance metric but am not sure what that name might be. Also, that might be sort of what neural nets do with their weights is model such metrics.

    • @mshonle
      @mshonle Před 5 měsíci

      I think this is a good demonstration for how these 700-1000 dimensional vectors are small and relatively *low* dimensional. A naive word co-occurrence matrix would have 200,000 squared entries (and 200,000 element vectors) for a 200,000 word vocabulary. Expanding that notion to sentences or tweets makes the combinations explode to intractable levels. Embeddings are lower dimensional approximations of these kinds of representations and it’s quite impressive how well they perform

  • @trezero
    @trezero Před 5 měsíci

    How would I run this locally? I have postgres installed on ubuntu 22 but I can not find any postgres extension named vector.

    • @trezero
      @trezero Před 5 měsíci

      I got it all working locally on Ubuntu 22 with postgres. Only extra step was that I needed to install the pgvector plugin for postgres first. I'd love to see how you would extend this to work with video

  • @BryanHawkshaw
    @BryanHawkshaw Před měsícem

    kinda stuck. Whenever I run the first block of code, it only detects one face in the image. Not multiple.

  • @renierdelacruz4652
    @renierdelacruz4652 Před 5 měsíci +1

    Great Video

  • @hqcart1
    @hqcart1 Před 5 měsíci +3

    well, it would be interristing if you do the search for the same dude, but without a beard, with hat, etc... i don't think by just simply creating embeddings this could be done anyways.
    Actully this app has been around for decades, but with facial recognition technology (this is how the FBI and governments finds people), but their app works by measuring distances on the face and doing face recognitions techniques, it could find the person even if he has a different look.

  • @wijayaeka9638
    @wijayaeka9638 Před 5 měsíci

    Most problem is lagging video in webcam, rtmp when face recognition running in opencv. u got idea?

  • @kyubijoninify
    @kyubijoninify Před 2 měsíci +1

    File "c:\Users\kyubi\Programming\embedding.py", line 15, in
    img = Image.open("stored-faces/" + filename)
    ^^^^^^^^^^
    AttributeError: type object 'Image' has no attribute 'open'
    Does anyone know how to fix this error?

  • @themax2go
    @themax2go Před 5 měsíci

    yeah i rather just have my db locally... not a big deal if it's public faces, but for an actual application it's risky if i don't know where that data ends up at (which data center, which service there, who maintains it, ...) because data breaches are a thing - if that's customer faces (data) and that is associated with names and correlated demographics data, if the db(s) get hacked... can you say "lawsuit" and "jail time" possibly. i know i'm not taking the risk.

  • @chrisbraeuer9476
    @chrisbraeuer9476 Před 5 měsíci +4

    "Easy" they said... 😅

  • @BlayneOliver
    @BlayneOliver Před 5 měsíci +1

    Do you know about ways to plug this in to CCTV cameras? I’d like to use it to create logs of arrivals and departures of my staff

    • @noneofyourbusiness8625
      @noneofyourbusiness8625 Před 5 měsíci +1

      Is that legal? 😂

    • @MetaphoricMinds
      @MetaphoricMinds Před 5 měsíci +1

      Many CCTV systems have this built in now. But yes, you could write some python that connects to your stream and catalogs faces. Same can be done for lic. plate logging.

    • @fullcrum2089
      @fullcrum2089 Před 5 měsíci

      try frigate

    • @fullcrum2089
      @fullcrum2089 Před 5 měsíci

      i also want build something like this, including with multimodal LLMs.

  • @synchro-dentally1965
    @synchro-dentally1965 Před 5 měsíci

    It may have trouble recognizing faces that are not mostly vertical.

  • @PietroSperonidiFenizio
    @PietroSperonidiFenizio Před 5 měsíci

    But if I program facial recognition software and put it in the countryside, will it recognize the wild boars one by one? 🐗🤔

  • @fishnchips6627
    @fishnchips6627 Před 3 měsíci

    The way croissant was pronounced triggered me a bit. But interesting tutorial, keep it up

  • @mirek190
    @mirek190 Před 5 měsíci +1

    ...again the code which is not working offline.
    Works until provider close or change server . No thanks ...

    • @themax2go
      @themax2go Před 5 měsíci +1

      that, plus it's a hook to get you spending money eventually. is fairly easily to adapt locally w/ almost the same code, or change to another db implementation such as chromadb. thing is, doesn't really matter cuz it's highly narrow application scenario (searched face / head can't be tilted, turned to the side, has to have same facial characteristics ie beard, glasses, ..., and the list goes on). this vid was just made to get the YTer a paycheck.

  • @Legi0n13
    @Legi0n13 Před 3 měsíci +1

    Да и каскады хаар очень старая и неточная

  • @jpmottin
    @jpmottin Před 5 měsíci

    You Forget to test with a wrong face (an unknown person)

  • @MetaphoricMinds
    @MetaphoricMinds Před 5 měsíci +1

    Society is taking a huge step into the future. AGI and people with "ANY SOFTWARE" capabilities. AGI will be here this year.

    • @mooonatyeah5308
      @mooonatyeah5308 Před 5 měsíci +1

      Not close. AGI is way beyond anything we have currently. Maybe in 5 years.

    • @MetaphoricMinds
      @MetaphoricMinds Před 5 měsíci

      @mooonatyeah5308 chain / tree of thought, mixed with multiple agents, gets us pretty close already.
      What do you see as a hindrance to achieving it sooner as opposed to later?

    • @themax2go
      @themax2go Před 5 měsíci

      not according to meta and the immense (600k+) Nvidia H100 (includes equivalent) by end of this year 2024 for approx US$ 18b (at least)... 5 years, no way, at most 1 year from now: by end of this year cloud infrastructure completed, training model in 6 months or less completed, perfecting the transformer tech aka "the engine" 6 months or less = gen 1 AGI@@mooonatyeah5308