AI Draws New Pokemon using Simple Math

  Рет қаралды 196,557

Jabrils

Jabrils

Күн бұрын

Пікірлер
@naidoeshacks
@naidoeshacks 5 жыл бұрын
I feel like this is just two pokemon pics layed on top of each other with one having very low opacity.
@spinnis
@spinnis 5 жыл бұрын
That's the problem he hinted at at the end. That's essentially what the AI is learning to do. It's doing well, but it's doing well on the wrong task.
@khomikoow5994
@khomikoow5994 5 жыл бұрын
@@spinnis I noticed that the first time he showed them. Maybe people who know photoshop can see it pretty easily.
@ITR
@ITR 5 жыл бұрын
Overfitting, lol Guess he needs to introduce novelty somehow.
@masternobody1896
@masternobody1896 5 жыл бұрын
Finnally I was waiting
@cameron4814
@cameron4814 5 жыл бұрын
I'm no expert but, i think you'd probably get better results with something like StyleGAN. I think these overlay/opacity trick looking results have something to do with the fact that the autoencoder is trying to learn the images based on a pixel for pixel loss function... like, if you use something slightly more abstract, like the feature vector from VGG, instead of just scoring it pixelwise, then it gets better results maybe? Id recommend this paper: "Image2StyleGAN: How to Embed Images Into the StyleGAN Latent Space?" also check out the "stylegan-encoder" repos on github by "maxisawesome" and/or "puzer". i'd speculate that any GAN architecture has some higher level abstraction built-in, (higher than the autoencoder), because the discriminator is learning the abstract features of the images and is teaching the generator based on that. Great work Jabrils!!!
@CodeParade
@CodeParade 5 жыл бұрын
Great job! I've got some advice for improving this: - Increase your dataset by more than 100x with small random translations and horizontal flips. Do it each batch or epoch if you don't have the memory to pre-compute it. - Once you start introducing more data, don't use the 4000+ dimensional vector, use a regular autoencoder. - Blending should be done by linear interpolation of the feature vector, the bottle-neck of the autoencoder. - Use a bigger model but add dropout to compensate for that. You should get drastically improved results. Maybe I'll give it a try real quick to see ;)
@digital_down
@digital_down 5 жыл бұрын
CodeParade ....and the master comes to give advice 🙌🙌🙌🙌🙌
@Jabrils
@Jabrils 5 жыл бұрын
Thanks for dropping in CP! That is an interesting solution, for part 3 I decided to go with another route, which does include ditching the encoded vector approach. If I can find some time towards the end of this id love to give your approach a try, or if you want to give it a try as you've hinted to, I'd love to take a gander at your results 😍 - Jabril
@edeneden97
@edeneden97 5 жыл бұрын
I agree that the middle vector should be a feature vector and not a pokemon vector (so bring back the first part of the NN). But adding random translations will just train the network to use some of the neurons in the feature vector for representing those translations so probably not needed. Also, if all the pokemon are looking to the same side then horizontal flipping would just use another neuron for no reason
@jason_shepherd
@jason_shepherd 5 жыл бұрын
I wonder if a one color background might help with the mess.
@wermaus
@wermaus 5 жыл бұрын
I was thinking the same thing, but i didn't know if it was really the right direction or not, I'm happy to find out that i know a little more than i maybe thought i did. mostly the first 2 points were where my head was at.
@Henkie
@Henkie 5 жыл бұрын
2:32 did u really just use google to search for google..
@khomikoow5994
@khomikoow5994 5 жыл бұрын
i do the same lol
@JamieAubrey
@JamieAubrey 5 жыл бұрын
We've all done it
@darkinferno4687
@darkinferno4687 5 жыл бұрын
Reminds me of the _floor is made out of floor_ meme
@nickrameau938
@nickrameau938 5 жыл бұрын
@@JamieAubrey No! I've never done it.
@JamieAubrey
@JamieAubrey 5 жыл бұрын
@@nickrameau938 One day, you will accidentally do it
@danielrincon4615
@danielrincon4615 5 жыл бұрын
"Aloha versions .. whatever that means." Ahahahahah
@kaicordes4074
@kaicordes4074 4 жыл бұрын
I know, right?
@Pancake3000
@Pancake3000 4 жыл бұрын
Lol yea
@archerbrown8733
@archerbrown8733 4 жыл бұрын
Imagine not knowing what alola is lmao uncultured
@elliot_rat
@elliot_rat 4 жыл бұрын
@@archerbrown8733 imagine not knowing what a joke is
@archerbrown8733
@archerbrown8733 4 жыл бұрын
@@elliot_rat bud i was adding to the joke
@mikkys167
@mikkys167 5 жыл бұрын
Eyy Jabrils, love the video and... Please don't let us wait another month for the next episode 😅
@wondercoll3719
@wondercoll3719 5 жыл бұрын
@T0M yup, it went by real fast
@arathorne8448
@arathorne8448 5 жыл бұрын
michał co ty tu robisz
@JDWilkyway
@JDWilkyway 5 жыл бұрын
I feel like we all need a periodic fix of Jabrils content
@nathansnively1537
@nathansnively1537 4 жыл бұрын
Its been a year now
@Kram1032
@Kram1032 5 жыл бұрын
I'd honestly try with more variation. First of all, having reflections in there seems like a good idea - though have reflection for *all* of them Second, what you *could* do is take out the background color (make it transparent) and replace it either by a random (at-training-time!) flat color or even by random noise, artificially inflating the training set by a HUGE factor while keeping the relevant features consistent. You could even use that to make it do transparent sprites: Anything that's background ought to be put in a transparency channel. Third you could use the multiple facial expressions, but make sure to have every Pokémon have an equal chance of coming up, basically by first sampling from Pokémon number (or something like that), and then from expression (if applicable for the Pokémon)
@yarood
@yarood 5 жыл бұрын
I think adding shifting Pokémon inside a frame could also help (not sure if there is a lot gain once the background is transparent), but this again could add a lot of "consistent variability" to your data.
@hecko-yes
@hecko-yes 5 жыл бұрын
maybe also add random hue shifts since poke men can be pretty much any color (like with codeparade's fursona generator)
@mattdamutt
@mattdamutt 5 жыл бұрын
These pokemon loom like half opacity overlaps w hella noise lmao
@christopherbabcock5030
@christopherbabcock5030 5 жыл бұрын
My dude, I think you've been hax.
@Pupoger
@Pupoger 5 жыл бұрын
The fact that at the Horsea+Charizard combo it made a Horsea with angry eyes is pretty dope.
@Henrix1998
@Henrix1998 5 жыл бұрын
We are seeing sqrt(2). Or more specifically the vector is only sqrt(2)/2 ≈ 0.7 long
@Jabrils
@Jabrils 5 жыл бұрын
Lol yes. You've solved it lol
@NinjarioPicmin
@NinjarioPicmin 5 жыл бұрын
well yeah but what does that mean? how will the vector we get from [0,sqrt(2)/2,sqrt(2)/2] look compared to the [0,0.5,0.5]
@Henrix1998
@Henrix1998 5 жыл бұрын
@@NinjarioPicmin it will follow a circle which goes through [0,1] and [1,0]
@NinjarioPicmin
@NinjarioPicmin 5 жыл бұрын
@@Henrix1998 ​ Henrix98 yeah sorry for not being clear, i was wondering how that would affect the pokemon we were getting, i can't really imagine how that would have a positive influence on the images we got
@Jabrils
@Jabrils 5 жыл бұрын
@@NinjarioPicmin Part 3 coming soon :D - Jabril
@grig8310
@grig8310 5 жыл бұрын
There is a website where you can get Pokémon fusions so you can have a potential data set of MUCH more
@trollsometimes9789
@trollsometimes9789 5 жыл бұрын
Fusion aren't like this tho
@danzackblack5829
@danzackblack5829 5 жыл бұрын
plus the fusions actually look good not this tho
@jdavis.
@jdavis. 5 жыл бұрын
I think what @Lokiop is suggesting is that you could feed in all the original sprites plus all the fusions and you'd have a HUGE library of source images
@gamernationwill1717
@gamernationwill1717 5 жыл бұрын
This man said aloha versions.. 🤣🤣🤣
@mattgoodman2687
@mattgoodman2687 5 жыл бұрын
Flipping images is a great way to increase your dataset size. Andrew Ng discusses this in his machine learning course. However, exact duplicates are bad. Make sure to remove those. Thanks for a great video. I love your content 😁
@Jabrils
@Jabrils 5 жыл бұрын
Nikola is correct - Jabrils
@mattgoodman2687
@mattgoodman2687 5 жыл бұрын
Nikola Selic I’m curious. Why is that?
@ramintaurbonaviciute9736
@ramintaurbonaviciute9736 5 жыл бұрын
I may be wrong, but isn't flipping the image one of the recommended ways to expand a dataset?
@BryanTheGamer
@BryanTheGamer 5 жыл бұрын
3:51 Jabrils: “there was only about 150” PNG 151-251: “am I a joke to you ?”
@xenontesla122
@xenontesla122 5 жыл бұрын
16:01 Is the network just averaging images when the dataset is this small? I wonder what would happen if you did something similar to early deepfakes and trained it to turn distorted images into the originals. In any case, I’m loving this series!
@Jabrils
@Jabrils 5 жыл бұрын
😉😉😉
@World_Theory
@World_Theory 5 жыл бұрын
To answer that question at the end: It's like a 50% transparency of the two. But here's why I think that's important, and why I think you're on to something: It looks like the neural network has, perhaps, memorized a compressed version of each pokémon, instead of memorizing a collection of features in an arrangement that make up a pokémon. But how to fix this?… An alteration to the architecture? An alteration to the dataset? Both? How to do either?… What about adding more layers to the neutral network, but make the layers fairly small? But make a relatively smooth gradient of change to the number of nodes per layer. I'm thinking a neural network somewhere in the ballpark of this: [1st layer node number = (width/2)*(height/2)],[2nd layer node number = (width of 1st node layer/2)*(height of 1st node layer/2)],[3rd layer node number = (width of 2nd node layer/4)*(height of 2nd node layer/4)],[4th layer node number = (width of 3rd node layer/2)*(height of 3rd node layer/2)],[same number of nodes as previous layer],[same number of nodes as previous layer],[same number of nodes as previous layer] Something like that. Wouldn't it be nice if I could communicate this idea a bit more elegantly? _sigh_ The idea is to choose an architecture that makes it very difficult for memorization, but easy for abstraction. Hopefully while maintaining a visually appealing result… But no promises!
@sebleblan
@sebleblan 5 жыл бұрын
It looks like those images are just overlapped with transparency. Is that normal?
@TwoVera
@TwoVera 5 жыл бұрын
for the blending yes. as for the learning algorithm that outputs them, no. Its not as clean because it hasnt learned how to draw various pokemon at different perspectives. it would look more like random pixels if the perspectives were random (ex full body pokemon, portrait, not a front-face profile image etc)
@misterkid
@misterkid 5 жыл бұрын
@Making Tech Friendly I think you spent more time commenting this exact comment in multiple places than any actual contribution
@Tony-rn8on
@Tony-rn8on 4 жыл бұрын
Really enjoy the videos you make. Great style and fun projects. Thanks for the content and here is to many more years of fun!
@thanatosor
@thanatosor 5 жыл бұрын
I have another way of fusing Pokémon : just hire me, I draw you any Pokémon combination :>
@developercorey1082
@developercorey1082 5 жыл бұрын
Just wanted to say that you were the tipping point in my inspiration to become an AI architect. When I saw the AI drone video It clicked. I now hold digital badges with IBM, have clients, and have more job offers than I can deal with. Thank you for being you. May God Bless You.
@b1rbmc
@b1rbmc 5 жыл бұрын
"Aloha" pokemon forms? Are you trying to trigger pokemon fans? IT'S ALOLA FORMS
@amesstarline5482
@amesstarline5482 5 жыл бұрын
This is Pokeblend.
@SoulCD
@SoulCD 5 жыл бұрын
Actually it's alolan
@stephen8602
@stephen8602 5 жыл бұрын
Still agree with the main point though. The shear point that he doesn't know what and alolan form is makes this video seems like its click bait for the Pokemon community since he doesn't even play the series. Casuals fishing for views is more like it
@Y0y0Jester
@Y0y0Jester 5 жыл бұрын
WTF is that shit
@eliserss9179
@eliserss9179 5 жыл бұрын
@@stephen8602 No? He just wanted to mix some pokemon together. Sure it's a good idea to use pokemon since it'll give better views than something like digimon but.. Pokemon is far easier than other options, and it's nothing evil to try to get more views. That's literally what youtube is about. Getting views.
@johannesasfaw
@johannesasfaw 5 жыл бұрын
Would you be able to write code that rates the "pokemon-ness" of the final products and then sorts them? And then discards the ones that don't look like a pokemon (based on machine learning having seen many pokemon) The problem I think with your method is that instead of mixing two or three pokemon it mixes too many with every attempt at a new image...
@ifroad33
@ifroad33 5 жыл бұрын
Try training your neural network with contours of the characters as well and differentiating between their colors/textures and the outlines when generating the new Pôkōmöns(TM). That way it won't make it seem like they're standing infront of eachother, instead it merges them together.
@NarveeStudios
@NarveeStudios 5 жыл бұрын
Hey Jabrills, What would happen if all your data were in black and white? Would that help in the end result?
@noahsduck4109
@noahsduck4109 5 жыл бұрын
*"If ur reading this, u've been hax!"*
@osmedia7239
@osmedia7239 5 жыл бұрын
*hax
@noahsduck4109
@noahsduck4109 5 жыл бұрын
It auto corrected and I didn't notice lmao
@osmedia7239
@osmedia7239 5 жыл бұрын
@@noahsduck4109 😂
@deepwoodsengineering3763
@deepwoodsengineering3763 5 жыл бұрын
Love the content. Even if projects don't work out, I'll still watch!
@GrahamRomero
@GrahamRomero 5 жыл бұрын
I love knowing that you pose with your computer just so you can voice over it - makes it more enjoyable to watch
@motog9464
@motog9464 5 жыл бұрын
There are many augmentation techniques like horizontal flipping, vertical flipping, zoom, shearing, rotate, height shift, width shift etc available in Tensorflow package to increase the size of the dataset. You can try using them Jabrils.
@masterninjaworrior
@masterninjaworrior 5 жыл бұрын
That Charmander-Porygon blend looks like it has seen some shit lol
@ShubhamBhushanCC
@ShubhamBhushanCC 5 жыл бұрын
Data Cleanup is 90% of any machine learning project.
@Shaddymaze
@Shaddymaze 5 жыл бұрын
Complete props to Jabrils on this! For those comments about how long this video took to get out...I'm sure this took a TON of effort! Recognize what it took to make this video. He went through building the network, sourcing the data, MANUALLY CLEANING THOUSANDS OF IMAGES (how is this man still sane?), doing all this in an organized and analytical way, oh, and building out and deploying a website using the model. Let's not forget filming and editing the video itself. Jabrils, you're insane! Keep up the great effort!
@romaindurand
@romaindurand 5 жыл бұрын
I love the storytelling on your videos
@floop_the_pigs2840
@floop_the_pigs2840 4 жыл бұрын
You need to set it to W for Wumbo
@usmanahmed3035
@usmanahmed3035 5 жыл бұрын
ManI love the "Aloha" Raichu
@joshjitsuBJJ
@joshjitsuBJJ 5 жыл бұрын
Can’t wait to see how your SQUIRTMANDER turns out in 2 more parts. Would also love to see a setup video on your PC build that allows you to work with huge datasets
@iamontda
@iamontda 5 жыл бұрын
Mystery Dungeon: Explorers of Time is my OG game! All of the expression images are of all the Pokemon in the same pose. Works wonders. I know more about Pokemon than about this whole AI redraw business, but this seems like a cool experiment.
@Zoey_710
@Zoey_710 5 жыл бұрын
idk how I found your channel by watching database videos, but Im glad I did you're funny af
@shadowplay5244
@shadowplay5244 5 жыл бұрын
I only seen like two of your videos and you are a motivation and inspiration to me I thank you New subscriber brotha
@mopolo
@mopolo 5 жыл бұрын
Get all your subscribers to manually blend in paint the pokemon to make a good dataset and try this again
@paramelofficial9100
@paramelofficial9100 5 жыл бұрын
I think what this lacks is a separation between silhouette and texture. If you could reliably detect the boundaries of the pokemon, you could reliably morph between the two shapes, and also use those silhouettes as a mask for pattern detection, dealing with contamination from the background colors.
@donatoliotino1872
@donatoliotino1872 5 жыл бұрын
I honestly can't believe it took you until the end of the video to notice that it's just overlaying the 2 images with a lowered opacity. I've been screaming at my screen this whole time waiting for you to acknowledge this. I was thinking it was looking for outlines and trying to transition between the lines of 2 images.
@johnmarck3240
@johnmarck3240 5 жыл бұрын
The paper "Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizer" talks exactly about what you're trying to achieve. Maybe it could be helpful.
@Jabrils
@Jabrils 5 жыл бұрын
Thanks for sharing this, will give it a look! - Jabril
@liptherapy
@liptherapy 4 жыл бұрын
The idea of the auto encoder is to extract the important features of the input and then from these features create output. For example when you input pikachu the important features are things like the color, shape... Then from those features it tries to make a pokemon that has those features. So to combine two pokemons you need to combine their features. 1. Feed both pokemons through the encoder to get their features. 2. Combine their features. 3. Use the combined features as input to the decoder to get a combined pokemon as output.
@altoclef4989
@altoclef4989 5 жыл бұрын
The lesson learned at the 12 minute mark is oddly very fitting to me considering how small the files for the original Pokemon Red and Blue are, and yet how iconic they remain to this day! Loved the video!
@hellzbellz1234
@hellzbellz1234 5 жыл бұрын
*_Nintendo Wants to know your location_*
@Fireflyorange
@Fireflyorange 5 жыл бұрын
@9:34 can someone please tell me where this song is from...
@bluesoman
@bluesoman 5 жыл бұрын
Here's an idea. For a larger data set, take the 3d models from one of the 3d pokemon games and have a program automatically create images by taking many pictures of each 3d model at different angles. I also think that you need to have something more complex than just having 0.6 and 0.4 for the blending. You might need 2 different programs. One that figures out the shape, and one the color. So then you tell it to use one pokemon's shape and the other's color. This is just an example. You might need to get more complicated.
@simjans7633
@simjans7633 4 жыл бұрын
If you're trying to draw a pokemon in the style of another, you could maybe check if neural style transfer could be applicable/give you the results you're looking for. Instead of a vector, you combine the "style" of one with the "structure" of the other.
@tangocharlie18
@tangocharlie18 5 жыл бұрын
I'm an artist and not a programmer, so I don't know if what I'm suggesting is possible. Is it possible to treat the silhouette and color data separately? Getting the edge data from pixel art should be possible as the background colors are kept at a high enough contrast so the sprite stands out. As a separate process, the color palette can be sampled from both source pokemon and applied to the blended silhouette of their outlines.
@faridkemyakov2645
@faridkemyakov2645 5 жыл бұрын
About training data - have you tried to grayscale images, so nn work with right shapes (like for vector graphics maybe) & only after color them from palette? also about cleaning data from doubles - try to use software for that, named like duplicate image finder, works faster than doing only by hands (need some assistance still)
@schmoinkle9528
@schmoinkle9528 5 жыл бұрын
the title "pokemon super mystery dungeon" should have a dataset with 720-ish pokemon, and should have a consistent art style. this is a super cool idea!
@farhannr28
@farhannr28 5 жыл бұрын
Yo i'm a big fan of Gambino and when i saw 0:52 i was shocked to know that you know him too and those albums mashup of his. And i also like Kanye and Tyler
@andregn4483
@andregn4483 4 жыл бұрын
2 questions: - Did you try forcing a smaller bottleneck in the AutoEncoder? - Is your encoder 100% linear? (I think you should merge the latent space, not the input)
@HeWhoWinsAtLosing
@HeWhoWinsAtLosing 5 жыл бұрын
Oh i got baited I got excited and thought this was the real video. rip. see you tomorrow i guess.
@JacksBestGaming
@JacksBestGaming 4 жыл бұрын
I have an idea for a fighting game where every time you open the game, different AI encoders make whole new images for fighters, sounds, stages, a new game icon, etc.
@Jabrils
@Jabrils 4 жыл бұрын
That's actually an interesting idea. Maybe even newly generated textures - Jabril
@kristofferkahler2465
@kristofferkahler2465 5 жыл бұрын
you pretty much made the AI equivalent of froopyland from rick and morty "what will happen when you mix pokemons"
@pnak0tic
@pnak0tic 5 жыл бұрын
I feel like the way you encode your data means your training data is much smaller than what you think. If the point is to have [1,0,0,0...] be pikachu and [0,1,0,0,0,0...] be squirtle or whatever, then feed it [0.5,0.5,........] and see what you get, then all the pokemon pictures that were neither pikachu nor squirtle are unused. So in the end your training data is effectively like the 10 pictures of pikachu and the 10 pictures of squirtle you had, while the other 798 pokemon pictures do not enter into play Also, in addition to flipping your dataset like other people suggested, I think you could also do color swaps, so either do 10-20 variations of each pictures with shifter hue or put your whole data set on the same palette. This way you reduce the dimension of your inputs and hopefully the network will identify more useful features
@wizardly
@wizardly 4 жыл бұрын
What is the music at 7:15? I recognize it, should know it and it's driving me crazy not knowing what it is
@beautyholic5592
@beautyholic5592 4 жыл бұрын
It's "Yoshi's Story" a Super Smash Bros. Melee soundtrack
@JediMediator
@JediMediator 3 жыл бұрын
8:52 Can anyone tell me what that sound clip is from?? I feel like I've heard it so many times, but I can't quite place it...
@Jabrils
@Jabrils 3 жыл бұрын
Star Fox 64 announcer before you start a level
@JediMediator
@JediMediator 3 жыл бұрын
@@Jabrils I loved that game! Thanks!
@gaborlant5343
@gaborlant5343 5 жыл бұрын
Dunno if you already tried but you can increase the dataset by flipping images and also consider transfer learning
@StarchildJohn
@StarchildJohn 5 жыл бұрын
You could try to vectorize the images of your last dataset and let the ai play around with mixing up individual vectors from svg files (so they actually form distinguishable shapes). That might produce cleaner linework. The blended image look is fine if it's just about getting them together somehow, but it isn't really any kind of artstyle. Great idea tho. I really like it.
@joshsmith2083
@joshsmith2083 4 жыл бұрын
I think the issue is that you are computing cost by the pixel difference. In this case it makes sense that the neural net will just overlay the images on top of each-other. With your current setup, you could make an optimization algorithm which, given 2 pokemon, progressively produces a pixel representation of a pokemon which minimizes the distance between the hybrids encoded feature vector and the 2 provided feature vectors.
@UltraSilver2
@UltraSilver2 2 жыл бұрын
An alternative idea this project could tangent into is having the AI generate earlier game sprites based on future. Obv the earlier you get the less of a dataset you'd have to train on. But I believe you can train the ai to limit the resolution, and color variation.
@jasonmason63
@jasonmason63 5 жыл бұрын
You can make a separate program that cleans the blended images (makes more bold outlines and colors) and makes them seem more pokemon-ish
@ZovcDrafts
@ZovcDrafts 5 жыл бұрын
Hey! This is an awesome project! First, I've been wanting to learn to play with RNNs for a while, but I have little to no experience with computer programming. If I wanted to take the first steps, where would you suggest I start? I was going to point you towards the TCG for art assets, but it's good to see that you thought of that. It makes sense that the information is too drastically different for you to work with, though. This would be a more complex AI and project, but here are some ideas I had, not sure if they have merit, but I think you're better positioned to evaluate them: ?>What if you had a set of data that was more complex, where [1,1,...] is Pikachu with a neutral expression, [1,2,...] is Pikachu with an angry expression, [2,1,....] is Charmander with a neutral expression, etc... ?>>Would the AI be able to understand that [x,1-5,...] are all the same pokemon and use that to better identify 1 (outline, body shape and color, etc) and 2, so that 1.5 would be closer to the middle of Pikachu and Charmander's outlines and shapes and colors? And, I ask this knowing very little about how this works or how difficult this is to design and define: ?2>Is it possible that your AI can more strategically and/or specifically encode things before decoding them? I remember you mentioning vectors and shapes and that it was complex, but if it was able to (try to) identify eyes, mouths, etc... it seems like it could make better outputs in theory. Last, I feel like you have to have seen this webstite: pokemon.alexonsager.net/ I imagine this is a very "dumb" design on the back end that has hand-separated assets... but could this kind of design work hand-in-hand with an AI to bridge some of the gaps you're trying to get across?
@ZovcDrafts
@ZovcDrafts 5 жыл бұрын
Oh! One more thing! Isn't it possible to "grade" the outputs of a RNN to help it do a better job in the future?
@idkwhattomake8458
@idkwhattomake8458 5 жыл бұрын
Jabrils's machine learning autoencoder : "Would you look at that, what a mess" Google's machine learning autoencoder : Pokemon game : New Pokemon found! element : Google
@axman6815
@axman6815 5 жыл бұрын
It overlays the images without actually identifying what makes up the face and other structures of each poked man. Any way you could get a bunch of data per poked to get a smarter system?
@abnormalways
@abnormalways 4 жыл бұрын
IDEA: What if instead of bending the images, get a graphic desginer to split each images into parts like "ear1, ear2, nost, mouth, headshape, headcolor"... and then the frankenpoke could choose 1 from each list or from a predetermined lists.
@jc1497
@jc1497 5 жыл бұрын
scale wise, you put more effort into this than game freak did with their "improved animations and models"
@Schrammletts
@Schrammletts 5 жыл бұрын
PhD student in machine learning here: 1) Why interpolate between the one-hot encodings when you can interpolate between the latent vectors produced by an encoder? The latent vectors contain much more high-level features and generally tend to interpolate better. 2) The 10x data rule is generally for data that doesn't have any natural structure to it. With highly-structured data like images, you can get away with using way less data as long as you use an appropriate architecture (like using convolutional layers to reflect the translational symmetry of images). Good luck with your project!
@CamilleFossier
@CamilleFossier 5 жыл бұрын
A simple linear PCA would do the job haha
@GamedevLlama
@GamedevLlama 5 жыл бұрын
you could probably get some even better results when somehow using the networks to learn a palette. Like not learning the exact color RGB values, but learning how to pick from a fixed, predefined color palette for each pixel while learning :-)
@goomba1312
@goomba1312 5 жыл бұрын
You should try decreasing the latent space. And instead of assigning a "bit" to each pokémon, you would perform a weighted addition on the generated vectors from the first NN.
@aerogarde3051
@aerogarde3051 5 жыл бұрын
I'm gonna guess someone else already suggested something along these lines, but what I would have done is keep the auto encounter half, and take the average of the two "low dimensional interpretations" of the Pokemon, and give that to the auto decoder. I'd be curious to see how that approach would turn out.
@isg9106
@isg9106 5 жыл бұрын
What would happen if you checker boarded 2 Pokémon over a 10x10 plain, using the the same technique as the final version in this video?
@NathanK97
@NathanK97 5 жыл бұрын
Maybe you could increase the efficacy of the data? Making heat maps of distinguished features? Or color coded cell maps of like the anatomy of the creature?
@SkitoOwn
@SkitoOwn 5 жыл бұрын
Shouldn't you be blending preserving a magnitude of 1? For example, instead of [0 0.6 0.4] (0²+0.6²+0.4²=0.6), using [0 0.6 0.8] (0²+0.6²+0.8²=1)?
@TechDunk
@TechDunk 5 жыл бұрын
Why does this look like making both half transparent and paste them together
@Anolaana
@Anolaana 4 жыл бұрын
I think it works best on the ones that share similar shapes like the first five on the 8:10 table. The last five kinda do look like mishmashes.
@stop7556
@stop7556 5 жыл бұрын
Since you are not "burning" the background of the pokemon mugshot I think that is also a major issue here. Since the dimensions/shapes of the pokemon arent consistent enough nor have enough datapoints for the AI to learn which each pokemon looks like. It just views each photo as an art style per say. So when it is merging these images together it just puts one set of pixels onto another. I am not sure if this is a solution but if you could burn off the backgrounds and possibly create the ROI being everything not the backgrounds then you may get better results because at least it will be putting colored pixels of each face from one to another. Alternatively depending on how much time you want to spend on this project. There was a paper that twominuteonepaper did a video on where they learned how image encoders viewed pictures. With traditional datasets it doesnt learn shapes but "textures". The paper then used transferlearning to impose other artstyles over the original images so that the "texture" didnt actually get learned but the consistent shape was learned. This may be another way to narrow down each pokemons face. Although obviously through this then the color of the pokemon is loss so maybe it needs to be a two part encoder but now you're gonna have a long training cycle to add all this together.
@TensorHype
@TensorHype 5 жыл бұрын
Could jittering the data help? At least for machine vision, you can take the same image and mess with it for more data. Rotate it, zoom in on it, linear algebra to angle it, maybe even stretch it. Order of magnitude more data for training.
@DrunkGeko
@DrunkGeko 5 жыл бұрын
You should try the same tecnique they use for vectorizing words in GPT2. Take the original NN and save the values of the bottleneck layer neurons to have a vector rapresentation of each pokemon. Like this the similar pokemon will have closer vectors to each other and thar will make interpolation and blending much better
@davidfails2866
@davidfails2866 4 жыл бұрын
13:15 let me guess you used 0 1 pic selector and mix one is double pic 50% opas when it should bed a line on pix scale that tracks comanalities of lines textures and figure out for it self what to delete... using 0 -100 based off of over lapping para lines used by alg
@davidfails2866
@davidfails2866 4 жыл бұрын
so piix lining as in grid match based off of photo scale... sample said box move on like printer to next and inputs the numb code common color and line tracking commns of first data set(first pic) and second pic 2nd data set determining line deletion of grid box based off of say call it gene % given to each one dom gene %. as to convert more or less lines tracked from grid set to be kept or deleted but trhy affect each other so if 100 other 0 on a sorta 200 point if first max is 100 sec max is 100 and points given to first are 50 other would be 150 auto on slider...
@davidfails2866
@davidfails2866 4 жыл бұрын
hope you see it as well
@LegoEddy
@LegoEddy 5 жыл бұрын
The blended pokemons to me look like transparent overlays of several pokemon. So maybe the networks are just learning in and out the pokemon. My first idea on that problem would be force the networks to reduce the size of the encoded vectors even more. As compensation, maybe add some depth so that the nets can learn the latent structure of the pictures better. Cheers :)
@metalarms98
@metalarms98 4 жыл бұрын
Is it the comparison is currently a linear function but a logarithmic function would yeild better results from the dataset?
@21amandac
@21amandac 4 жыл бұрын
what if you removed the back grounds of the 500 pics? would it lead to better blends?
@zleapingbear
@zleapingbear 5 жыл бұрын
Looks great. This encode/decode approach is great i think. Have you considered adding another element of self training. Like the unsupevised methodes used were a game ai plays it self. But in this case, train your decoder vs an ai made to spot the real pokemon. Eg, have your decoder create an image, have the spotter watch that image along with a real (random) pokemon image, see how sure it is what is what, Then train based on that? Also, for multiple images of the same pokemon, would it not be posible to record ingame animations in the newer games and the pick them frame by frame? (im No expert in data collection) Any Who... Great job :)
@bread_3393
@bread_3393 4 жыл бұрын
I know your probably not going to see this but, what if you make the AI detect curtain important features, such as a nose, eyes, mouth, ears, etc. and have the program cut out those to make a combination, and also allow for what the dominant color is on the Pokmen. I know almost nothing about programming and machine learning but, it’s a thought
@VeritasVelez
@VeritasVelez 5 жыл бұрын
You found a way to take two images of Poke Mans and make one crappy pic of a Poke Man... genius.
@notmewritingthelongestuser4233
@notmewritingthelongestuser4233 4 жыл бұрын
Congratulations, you have successfully created a worse version of an opacity slider.
@Airwr3ck
@Airwr3ck 5 жыл бұрын
Such an awesome and well thought out process method.
@luke7503
@luke7503 5 жыл бұрын
i bet hes gonna keep track of our use of the website as some wort of data set, like comparing how much each Poke man should be blended for the best looking results
@tejasnareshsuvarna7948
@tejasnareshsuvarna7948 5 жыл бұрын
I think his algorithms must detect and cleanly extract and separate features like eyes nose body and then use that to generate a new pokemon rather than using plain image data.
@caretbay4792
@caretbay4792 5 жыл бұрын
Hey jabrils... ive been experimenting with python AI... im trying to make an ai for a 2d platformer that has multiple players... and i need some help figuring out how to separate the player (agent)(player 1(me)) from everything and everyone else... im using python-opencv to process my images...
@coath
@coath 5 жыл бұрын
Is there a way to speed everything up when the AI is learning and then slow it down?
@thibautmodrzyk6292
@thibautmodrzyk6292 5 жыл бұрын
What about "smoothing" the images so it looks less glitchy? For instance juste smoothing out the background, idk if it's possible but it would be a big improvement in the quality of the outputs
@masumabdulwadud7584
@masumabdulwadud7584 5 жыл бұрын
"What the fuck is this." - Jabrils 2019
@Joao-yg7bb
@Joao-yg7bb 5 жыл бұрын
Maybe you just need to use "2 A.Is",1 to detect what is a Eye,ear,head,etc and uses that as an input to the 2nd A.i which will assemble the caracteristcs of the 2 pokemon together. Just saying,idk much about that
@manuvanvlerken6789
@manuvanvlerken6789 5 жыл бұрын
If you combine the vectors, it shouldn't be 0.5 and 0.5 because than the length of the vector isn't 1 anymore. It should be sin(0.25pi radiant), this way the length of the vector stays at 1 and the quality of the blend will be more like the originals. This is becouse you are working with the unit circle.
@landonlloyd4324
@landonlloyd4324 5 жыл бұрын
Hello jabrils I want to learn to program but I don’t know what laptop to get. I am kind of on a budget and was wondering what you would recommend for a laptop I could get for programming. Btw I love your videos and you have taught me a lot.
AI Draws New Pokemon using Profile Pictures
10:27
Jabrils
Рет қаралды 120 М.
I fixed Nintendo's bad AI so it's actually playable
17:52
Jabrils
Рет қаралды 327 М.
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 108 МЛН
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Using AI to NEVER LOSE in KAHOOT
10:54
The Coding Sloth
Рет қаралды 1,5 МЛН
7 Outside The Box Puzzles
12:16
MindYourDecisions
Рет қаралды 204 М.
I Recreated Adobe Flash in VR
9:40
Jabrils
Рет қаралды 153 М.
Programmer VS The Human Benchmark Test | Number Memory
17:47
Code Bullets Day Off
Рет қаралды 526 М.
I used AI to beat Nintendo's Pokémon designers?!
14:55
Jazza
Рет қаралды 596 М.
How I Made My First Robot! (In A Weekend)
20:25
Jabrils
Рет қаралды 357 М.
Evolving AIs - Predator vs Prey, who will win?
12:15
Pezzza's Work
Рет қаралды 2,9 МЛН
Guessing AI Generated Pokemon
13:53
L8Games
Рет қаралды 13 М.
ILOVEYOU: Earth's Deadliest [Computer] Viruses
22:34
Disrupt
Рет қаралды 6 МЛН
OpenAI Plays Hide and Seek…and Breaks The Game! 🤖
6:02
Two Minute Papers
Рет қаралды 10 МЛН
Support each other🤝
00:31
ISSEI / いっせい
Рет қаралды 81 МЛН