Thresholding with Match Template - OpenCV Object Detection in Games #2

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 พ.ย. 2024

ความคิดเห็น • 120

  • @AlexTubu
    @AlexTubu 4 ปีที่แล้ว +20

    At first I thought that I just wanted to cheat on the game. Then I saw your video. Then I saw the future. And now I know that game will be only the first step for me in this story.

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +16

      Watch out, the coding might be more fun than the games themselves 😄

    • @gmac9313
      @gmac9313 3 ปีที่แล้ว +1

      And how it's going now?

  • @Гусьэкономит
    @Гусьэкономит ปีที่แล้ว +7

    It has been two years already, where is the continuation? Why did you abandon your channel? You explain better than all my teachers! You're the best! It has been 2 years already, perhaps you have improved object detection, bot performance, and their movement between points, or maybe there's something else interesting to see!

    • @spencer5028
      @spencer5028 2 หลายเดือนก่อน

      Got hired by DoD

  • @zen123w
    @zen123w 4 ปีที่แล้ว +14

    great explanation of zip(*location[::-1]). Being some what familiar with opencv, I have never come across such a clear explanation of that line before.

  • @cidsantiago9577
    @cidsantiago9577 3 ปีที่แล้ว +2

    I am learning opencv because I love to automate tasks and I love to play online games and I have to say your channel blows my mind. I watch and re-watch all of your videos. It have been AWESOME learn with you, thank you very much spending time teaching us all.

  • @patwicker1358
    @patwicker1358 4 ปีที่แล้ว +20

    Just discovered your channel and am enjoying it very much. I really like your presentation style, the fact that you show manual pages, and that you know what you are going to say with no fumbling.

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +7

      That's the style I'm going for. Glad you like it!

  • @Charvin
    @Charvin 4 ปีที่แล้ว +16

    I have been waiting for this part very eagery, and it was worth the wait. My test script was able to identify objects I show on an image. There is a sense of great satisfaction when you see something you made work.
    Figuring out just the right threshold where the program can find out things quite right was the part which took a bit of time & lots of trial and error (understandable). Really glad that it worked out.
    Thank you! Looking forward to learning from the next videos in the series as well as from the old ones on the channel.

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +4

      Thanks, glad to hear you're following along!

  • @thedeveloper643
    @thedeveloper643 4 ปีที่แล้ว +7

    i've waited for the next tutorial since the first one and here it is! thank you so much for valuable contents

  • @pacman804
    @pacman804 2 ปีที่แล้ว +1

    I love you style of teaching so much, hands down one of my best programming channels.

  • @greedsloth1516
    @greedsloth1516 4 ปีที่แล้ว +3

    Glad to have found this channel! Keep up the good work Ben! Stay safe amidst of the pandemic

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +2

      Thanks, you too! Thanks for checking out my videos.

  • @JS-kr7zy
    @JS-kr7zy 4 ปีที่แล้ว +3

    super excited for this style of tutorial. Project centered learning is definitely the way to go, and there isn't enough.. I don't want to say "hand-holdy" content, but after you get to a certain point programming kind of takes a leap off the diving board into dense documentation.

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +1

      Yeah for sure. I try to lead people to the fun stuff so they're more excited to explore on their own from there.

  • @vakula6859
    @vakula6859 3 ปีที่แล้ว

    Ты делаешь очень крутые вещи для очень привычных, для многих, занятий. Большое тебе спасибо!
    You do very cool things for very familiar, for many, activities. Thank you very much!

  • @DemandRS
    @DemandRS 2 ปีที่แล้ว

    First time I've seen unpacking with *, really cool. Good video thanks :)

  • @emiletheroux2317
    @emiletheroux2317 11 หลายเดือนก่อน

    Trying for Path of exile, its hard but your lessons helps a lot.

  • @laboratoriya
    @laboratoriya 3 ปีที่แล้ว

    Perfect tutorial. This gentleman explains everything crearly.

  • @SquallHart05
    @SquallHart05 2 ปีที่แล้ว

    You're an EXCELLENT teacher. Thank you!

  • @ProficusLets
    @ProficusLets 3 ปีที่แล้ว +7

    Спасибо за прекрасные уроки дружище!

  • @prodffstarboy
    @prodffstarboy ปีที่แล้ว

    lovely ! trying to build a bot for a mobile RPG game emulated on Bluestacks, this has been a great help !

    • @prodffstarboy
      @prodffstarboy 10 หลายเดือนก่อน

      @Xarius01 what do you wanna know

  • @markr87
    @markr87 2 ปีที่แล้ว

    Just came across your videos recently and I have to say you are amazing!
    I have been trying to learn programming for nearly a decade but it never really grabbed my attention, and totally lost by the time i got to object oriented programming. First time ever I am actually enjoying the lessons.
    Subbed and crunching through all your videos!

  • @nerdwolf3839
    @nerdwolf3839 3 ปีที่แล้ว

    Never stop making videos. Your videos are amazing!!!

  • @shamelessvideoeditor3839
    @shamelessvideoeditor3839 2 ปีที่แล้ว

    great video, thank you buddy. Looking forward to running through some of your other videos.

  • @tobias6361
    @tobias6361 4 ปีที่แล้ว

    Amazing that you try that on an Albion screenshot and what a coincidence that I’m using template matching for an Albion project too :D

  • @alekaditez3830
    @alekaditez3830 3 ปีที่แล้ว +1

    some of the best python tutorials out there. Much appreciated and good luck to you!

  • @yunustalhaerzurumlu6547
    @yunustalhaerzurumlu6547 ปีที่แล้ว

    Dude your channel is amazing, your presentation is really clear, Keep up with the good work!

  • @keve8586
    @keve8586 4 ปีที่แล้ว +7

    you are the man! thank you for your content and channel!

  • @goob6433
    @goob6433 4 ปีที่แล้ว +1

    Man this is funny I actually came to your channel with the pyautogui video hoping to code a fishing bot for Albion online, and look what I see! A tutorial for harvesting cabbages

  • @Natsumi_Nakamura
    @Natsumi_Nakamura ปีที่แล้ว

    [spanish]
    2023 y me ayudas un monton con todo esto. lo usare para programar bots >:D . I♥U so much

  • @MrBru96
    @MrBru96 4 ปีที่แล้ว +1

    Great video! I look forward to seeing this kind of object detection into a real time video. Keep it up!

  • @faizaanazam
    @faizaanazam 4 ปีที่แล้ว

    Excellent series so far. Thanks, Ben!

  • @palette454
    @palette454 4 ปีที่แล้ว

    you saved me so many work hours with openCV

  • @svampebob007
    @svampebob007 4 ปีที่แล้ว +1

    Really interesting and nice explanation.
    I find that using games to learn how to program is a really neat way to learn the basics of a program.
    Mainly because you are already familiar with the game, but also because there's 1000 different things to "program" for in a game.
    I started with programing a rocket guidance system in KSP by using KOs, but also it made me learn more about Bash and SSH since I was running KSP over the network and I used SSH to connect to the game "telnet console".
    I'm going to hell for this one but:
    One eye on the code, one eye on the console :)

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว

      Yeah the project ideas with games are endless, which is great for beginners because it helps you get a lot more time writing code. Kerbal Space Program is fun, haven't played it in years!

  • @ЕвгенийСергеевич-л7с
    @ЕвгенийСергеевич-л7с 3 ปีที่แล้ว +3

    Всех приветствую! Бен большое спасибо тебе за твой труд! В русском сегменте ютубу, к сожалению довольно мало именно прикладного использования Opencv, информация подается в виде поверхностного ознакомления. Еще раз тебе спасибо!

    • @ЕвгенийСергеевич-л7с
      @ЕвгенийСергеевич-л7с 3 ปีที่แล้ว +2

      Greetings to all! Ben thank you so much for your hard work! In the Russian segment of TH-cam, unfortunately, there is quite a little application use of Opencv, the information is provided in the form of a superficial acquaintance. Thank you again!

    • @ProficusLets
      @ProficusLets 3 ปีที่แล้ว

      Полностью согласен с тобой!

  • @ColeDockter-g1t
    @ColeDockter-g1t ปีที่แล้ว

    Would love to see a breakdown of diablo 2's pixel bot, which is coded in python & uses this library.
    Hope there are more of these!!

  • @Alexander_Meyer
    @Alexander_Meyer 4 ปีที่แล้ว +1

    Cant wait for the next episode :D

  • @javiermusso3010
    @javiermusso3010 3 ปีที่แล้ว

    Hey, really enjoy your style in this videos! Keep it up and thanks a lot!

  • @leonardochaves6569
    @leonardochaves6569 4 ปีที่แล้ว

    thanks for the content. It was everything I was looking for. You even got the game right that I would like to make a bot.

  • @irynashevchenko1575
    @irynashevchenko1575 3 ปีที่แล้ว

    incredible !! super!!! great work!!!

  • @tymothylim6550
    @tymothylim6550 4 ปีที่แล้ว

    Hello Ben! Thank you for this video! I think the explanations were clear.

  • @aidancohen8721
    @aidancohen8721 4 ปีที่แล้ว +2

    I love these videos. thanks so much these are great!

  • @cedricdeege5763
    @cedricdeege5763 4 ปีที่แล้ว

    Thanks man, really clear and easy to follow!

  • @martinneff1681
    @martinneff1681 4 ปีที่แล้ว +2

    Great Tutorial, Thanks

  • @DanielXavierDosReis
    @DanielXavierDosReis 2 ปีที่แล้ว

    awesome good! very nicee lesson, bro, keep it up, very well explained

  • @kosmonautofficial296
    @kosmonautofficial296 ปีที่แล้ว

    Great video! Thank you for this great tutorial I. I am hoping to use this for detecting what round I am on in nazi zombies.

  • @JordhanRDZ
    @JordhanRDZ 4 ปีที่แล้ว +3

    Amazing series ! Can you give some spoiler for the next episodes? xD

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +6

      Thanks! Part 3: Grouping rectangles and calculating mid/click points. Part 4: Fast real-time image capture. Part 5: Real-time object detection. Part 6: Image processing for better match results. Part 7: Integrating automated clicks and bringing it all together. Might be a few parts past that, too.

  • @rb_420
    @rb_420 2 ปีที่แล้ว

    you are amazing!! thanks for sharing so much knowlodge (:

  • @lordraphi
    @lordraphi 4 ปีที่แล้ว +1

    Waiting for the next one

  • @falsemessiah5515
    @falsemessiah5515 3 ปีที่แล้ว

    keep doing this! ive learned alot

  • @MrRAk1N
    @MrRAk1N 2 ปีที่แล้ว +1

    Have you considered making a comparison using YOLO?

  • @kevinflynn4867
    @kevinflynn4867 ปีที่แล้ว

    Awesome !

  • @TravisJMedia
    @TravisJMedia 4 ปีที่แล้ว +2

    Amazing, thanks for your tuts! Can you show us an example on how to use opencv to let the bot detect when the bot reaches the edge of a zone? I'm trying to let my bot gather resources by walking randomly and with an unstuck feature. Only challenge is that he keeps getting stuck at the edge of the map.

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +1

      What game?

    • @TravisJMedia
      @TravisJMedia 4 ปีที่แล้ว

      @@LearnCodeByGaming Albion

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +2

      @@TravisJMedia Cool, I'll see if I can find a solution for that and include it in a future video.

    • @TravisJMedia
      @TravisJMedia 4 ปีที่แล้ว +1

      @@LearnCodeByGaming Thanks a lot man! You're the best.

  • @t-72k16
    @t-72k16 4 ปีที่แล้ว +1

    Thank you so much for these, i was wondering if you can go into some better object detection that can handle camera angle changes in game?

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +1

      Yeah that does get tricky when the camera angles change. I'm going to be covering more and more advanced topics as this series continues.

    • @t-72k16
      @t-72k16 4 ปีที่แล้ว

      @@LearnCodeByGaming using the other technique of for looping through each pixel and seeing if it matches a color on a list. It works pretty well but can be slow at times

  • @waynewu7763
    @waynewu7763 3 ปีที่แล้ว

    thanks alot for these tutorials. I am also learning as I follow along slowly. I have a question, for your for loop, would it be possible (or easier) to compact into a list comprehension? if so, how would that work?

  • @dr.kingschultz
    @dr.kingschultz 3 ปีที่แล้ว

    Thank you for the videos!

  • @Backflipmarine
    @Backflipmarine 4 ปีที่แล้ว +2

    Can you use multiple images or is that more tensorflow? Whens the next vid btw?

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว

      You can search for multiple images, but it starts getting slow pretty fast in my experience. I filmed the next video earlier today, so I should be done editing and have it uploaded in 2-3 days.

  • @thewdead3673
    @thewdead3673 2 ปีที่แล้ว

    Hey,
    Great tutorial!
    Is it possible for you to make some tutorial on how to walk your character in in a defined square? I am trying to make a bot for pokemon game farming in grass and I am not sure how to move my character in the same area without it going to the wrong way.
    Thanks!

  • @Magistrmate
    @Magistrmate ปีที่แล้ว

    Спасибо за видео!

  • @magnumdavid6394
    @magnumdavid6394 2 ปีที่แล้ว

    Thank you!

  • @jayadevashok2070
    @jayadevashok2070 4 ปีที่แล้ว

    Awesome tutorial bro!!!

  • @AntonVasilev-q3t
    @AntonVasilev-q3t 10 หลายเดือนก่อน

    KOOOOOOOOOOOL!!!!!!!! THANKS!!!!!!!!!!!!!!!!!!

  • @MultiBelz
    @MultiBelz 2 ปีที่แล้ว

    very cool thank you

  • @nburn8306
    @nburn8306 4 ปีที่แล้ว +2

    I ran into a problem with the code example at 10:23. When running that in VS Code my CPU usage spiked, the program took 5-10 minutes to finish, and the image result was different from the one in the video. For anyone having this example freeze up on them, the issue for me seemed to be calling "cv.waitKey()" with no argument (line 35). After changing "cv.waitKey()" to "cv.waitKey(0)" the code ran in a fraction of the time and produced the expected image result.

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว +1

      Thanks for pointing that out! From video 4 I started using cv.waitKey(1) myself. I don't recall why I made the switch, but I probably ran into problems, too.

    • @nburn8306
      @nburn8306 4 ปีที่แล้ว

      @@LearnCodeByGaming Weird, I just went to double check and can't recreate the bug anymore. waitKey now works even without an argument. Some "magic smoke" stuff going on in my computer...

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว

      @@nburn8306 Oh man that'll drive you crazy. Glad it works I guess?

  • @diegogutierrez5989
    @diegogutierrez5989 2 ปีที่แล้ว

    Thanks 👍👍👍

  • @ismaelRR
    @ismaelRR 3 ปีที่แล้ว

    Your are a boss!!!!!

  • @Egeevis
    @Egeevis 6 หลายเดือนก่อน

    thanks a lot

  • @locutusvonborg2k3
    @locutusvonborg2k3 2 ปีที่แล้ว

    ok, i do have the problem, that a result, which is false, has a higher confidence value, than what i am looking for, so i cant set the threshold higher, cause then i dont get what i want.
    however, my object im looking for isnt static, its kinda a moving gif xD
    still very nice videos so far, learned a lot

  • @waenurdeanwaehamad2787
    @waenurdeanwaehamad2787 11 หลายเดือนก่อน

    I wonder why does it have to reverse the locations, does it mean that np.where() returns the array of ys first then xs?

  • @andreasas1462
    @andreasas1462 4 ปีที่แล้ว

    nice project dude

  • @siman211
    @siman211 3 ปีที่แล้ว

    I have Pycharm so can't run and debug i tried to get visual code but can't make it to install opencv on it don't know why
    I am new to coding i try a lot of site codeacadamy, pirple but i just can't still learn you somehow manage to explain a little better then others i hope i manage to learn something from you

  • @venkateshvenky5489
    @venkateshvenky5489 4 ปีที่แล้ว +2

    Can we able to detect multiple objects of by giving two different sample templates

    • @LearnCodeByGaming
      @LearnCodeByGaming  4 ปีที่แล้ว

      Yes, absolutely!

    • @venkateshvenky5489
      @venkateshvenky5489 4 ปีที่แล้ว

      @@LearnCodeByGaming Could you please tell me how to give input to it.Thanks in advance

  • @matheuskjn
    @matheuskjn 4 ปีที่แล้ว

    Conteúdo muito bom

  • @SpieltGames
    @SpieltGames 3 ปีที่แล้ว

    Why do you have a black left eye, did you have any blows?

  • @wolfpackgaming2571
    @wolfpackgaming2571 5 หลายเดือนก่อน

    what settings do you use in vs code?

  • @nguyenhungiot
    @nguyenhungiot ปีที่แล้ว

    Hello, I,m using openCV to play game Mir4 automate by detect quests in game, please help me some idea!
    Thank you very much

  • @aminghasembeigi7078
    @aminghasembeigi7078 2 ปีที่แล้ว

    commenting for the algorithm

  • @sobrelaroca2701
    @sobrelaroca2701 3 ปีที่แล้ว

    Emm bro. I love you

  • @jcorrify
    @jcorrify 11 หลายเดือนก่อน

    Using python 3.12 and opencv python 4.8.1 and the result format look different in my debugger, I can't scroll through results

  • @airidasrom583
    @airidasrom583 2 ปีที่แล้ว

    it opens for me like 4 windows and in the last it only shows all the images im searching tho after i close same image with same marked sports appear.. any fix ? or its suppose to be like that ?

  • @EranM
    @EranM 3 ปีที่แล้ว

    9:20 I think theres a thing called "Transpose" Which is much more intuitive and readable

  • @kuhicop
    @kuhicop 2 ปีที่แล้ว

    For some reason, sometimes it will return a full black image when calling the WinCap.get_screenshot() method. I have to keep restarting the game and visual studio until it works again. Someone figured out this?

  • @vitustiberius2645
    @vitustiberius2645 3 ปีที่แล้ว

    try out the python plugin and use the '# %%' code block to run python interactive cell

  • @whxmpy56
    @whxmpy56 2 ปีที่แล้ว

    Matchtemplate thing does not work comes up with this (-215:Assertion failed) _img.size().height

  • @Alex_Aly
    @Alex_Aly 3 ปีที่แล้ว

    Does anybody know a scale-invariant Template Matching method ?

  • @pastuh
    @pastuh 3 ปีที่แล้ว +1

    And peoples think Diablo Resurrected will not have bots :X

  • @CyberZyro
    @CyberZyro 4 ปีที่แล้ว

    its way more easier with cascade files

  • @hamburgerhamburger986
    @hamburgerhamburger986 2 ปีที่แล้ว

    My code draws 5-10 lines for every object for some reason

  • @onggiachoigame4929
    @onggiachoigame4929 3 ปีที่แล้ว

    I use your code:
    threshold = 0.85
    locations = np.where(result >= threshold)
    print(locations)
    # the np.where() return value will look like this:
    # (array([1, 5], dtype=int32), array([1, 15], dtype=int32))
    and this is my result:
    (array([483], dtype=int32), array([514], dtype=int32))
    please help me.

  • @dedpihto680
    @dedpihto680 2 ปีที่แล้ว

    it couldn't even select all the required objects without garbage

  • @leingod7779
    @leingod7779 ปีที่แล้ว

    trying to make a BOT for a game :D