YOLOv1 from Scratch

Поделиться
HTML-код
  • Опубликовано: 20 авг 2024

Комментарии • 300

  • @AladdinPersson
    @AladdinPersson  3 года назад +58

    Here's the outline for the video:
    0:00 - Introduction
    0:24 - Understanding YOLO
    08:25 - Architecture and Implementation
    32:00 - Loss Function and Implementation
    58:53 - Dataset and Implementation
    1:17:50 - Training setup & evaluation
    1:40:58 - Thoughts and ending

  • @PaAGadirajuSanjayVarma
    @PaAGadirajuSanjayVarma 3 года назад +76

    Plz give this man a noble proze

    • @deeps-n5y
      @deeps-n5y 3 года назад

      *Nobel

    • @iiVEVO
      @iiVEVO 3 года назад +4

      A noble nobel prize*

  • @vijayabhaskar-j
    @vijayabhaskar-j 3 года назад +95

    This series was super helpful, can you please continue this by making one for Yolo v3, v4, SSD, and RetinaNet? That will make this content more unique because none of the channels that explains all these architectures and your explanations are great!

    • @jertdw3646
      @jertdw3646 Год назад

      I'm confused on how i'm supposed to load the images up for training. Did you get that part?

    • @Glitch40417
      @Glitch40417 Год назад

      ​​@@jertdw3646on't know if you got it or not, actually there's a train.csv file.
      Instead of 8examples.csv or 100examples.csv we can use that file.

  • @thetensordude
    @thetensordude 3 года назад +55

    Most underrated channel!!!

    • @vanglequy7844
      @vanglequy7844 3 года назад

      Let's look at it upside down then!

  • @asiskumarroy4470
    @asiskumarroy4470 3 года назад +12

    I dont know how do I express my gratitude to you.Thanks a lot brother.

  • @caidexiao9839
    @caidexiao9839 Год назад +3

    Thanks a lot for you kindness to provide the yolov1 video. By the end of the video, you got mAP close to 1.0 with only 8 training images. I guess you used weights of a well trained model. With more than 10,000 images and more than 20 hours on Kaggle 's free GPU, my mAP was about 0.7, but my validation mAP was less than 0.2. Nobody mentioned the over fitting issue of yolo v1 model training.

    • @satvik4225
      @satvik4225 2 месяца назад +1

      mine is coming 0.0 always

  • @MohamedAli-dk6cb
    @MohamedAli-dk6cb 2 года назад +11

    One of the greatest deep learning videos I have ever seen online. You are amazing Aladdin, please keep going with the same style. The connections you make between the theory and the implementation is beyond PhD level. Wish I can give you more than one like.

  • @_adi_1900
    @_adi_1900 3 года назад +9

    This channels going to blow up now. Great stuff!

  • @eminemhc5763
    @eminemhc5763 3 года назад +4

    Only 3.5K subscribers ??? One of the most underrated channel in RUclips
    Keep posting quality video like this bro , soon you will reach 100K+ subs , congrats in advance
    Thanks for the quality content :)

  • @_nttai
    @_nttai 3 года назад +3

    I was lost somewhere in the loss but still watch the whole thing. Great video. Thank you

  • @haldiramsharma4601
    @haldiramsharma4601 3 года назад +8

    Best channel ever!! All because of you, I learned to implement everything from scatch!! Thank you very much

  • @keshavaggarwal5835
    @keshavaggarwal5835 3 года назад +3

    Best Channel ever. Cleared all doubts about YOLO. I was able to implement this in tensorflow by following your guide with ease. Thanks a lot bro.

    • @AladdinPersson
      @AladdinPersson  3 года назад +1

      Awesome to hear it! Leave a link to Github and people could use that if they are also doing it for TF?:)

    • @Skybender153
      @Skybender153 2 года назад +1

      Link for the tensorflow repo would be appreciated Keshav

  • @Anonymous-nz8wd
    @Anonymous-nz8wd 3 года назад +4

    GOD DAMN! I was searching for this for a really long time but you did it, bro. Fantastic.

  • @nguyenthehoang9148
    @nguyenthehoang9148 9 месяцев назад +1

    By far, your series is one of the best content about computer vision on RUclips. It's very helpful when people explain how things work under the hood, like the very well-known courses by Andrew Ng. If you make a paid course for this kind of content, I'll definitely buy it.

  • @thanhquocbaonguyen8379
    @thanhquocbaonguyen8379 2 года назад +7

    massively thank you for implementing this in pytorch and explain every bits in detail. it was really helpful for my university project. i have watched your tutorials at least 3 times. thank you!

    • @abireo2285
      @abireo2285 Год назад

      PhDs are 100% learning how to code here :)

  • @crazynandu
    @crazynandu 3 года назад +14

    Great Video as usual . Looking forward to see RCNNs (mask , faster , fast , ..) from scratch from you !! Similar to Transformers you did, you can do one from scratch and other using the torchvision's implementation .Kudos !!

  • @rampanda2361
    @rampanda2361 3 года назад +1

    The savior, Been looking at codes of other people for few days, Could not understand it better as those were codes only with no explanation what so ever. Thank you very much.

  • @user-oq7ju6vp7j
    @user-oq7ju6vp7j 3 месяца назад

    What an amount of work! I don't often see people in the internet that are so dedicated to deep learning!

  • @sangrammishra4396
    @sangrammishra4396 2 года назад +1

    I love the way he explained and always maimtain simplicity in explaining the code, thanks aladdin

  • @WiktorJurek
    @WiktorJurek 3 года назад +3

    This is insanely valuable. Thank you very much, dude.

  • @sachavanweeren9578
    @sachavanweeren9578 2 года назад +2

    I can imagine this video took a lot of time to prepare, the result is great and super helpful. Thank you very much. Respect!

  • @abireo2285
    @abireo2285 Год назад

    This is the best deep learning coding video I have ever seen.

  • @nikolayandcards
    @nikolayandcards 3 года назад +3

    So glad I came across your channel (Props to Python Engineer). Very valuable content. Thanks for sharing and you have gained a new loyal subscriber/fan lol.

  • @krzysztofmajchrzak1881
    @krzysztofmajchrzak1881 3 года назад +1

    I want to thank so much! It is literally a live saver for me! Your channel is underrated!

  • @shantambajpai8064
    @shantambajpai8064 3 года назад +2

    Dude, this is AMAZING !

  • @ai4popugai
    @ai4popugai 11 месяцев назад

    The most clear explanation that I have ever found, thank you!!

  • @user-rz3bq5js2m
    @user-rz3bq5js2m 2 года назад

    I'm a beginner of object detection, You videos help me a lot. I really like your style of code.

  • @user-qz3fr1nf9z
    @user-qz3fr1nf9z 3 года назад +2

    This video was so helpful. Thank you!

  • @vamsibalijepally3431
    @vamsibalijepally3431 3 года назад +1

    def test(S=7, B=2,C=20):
    model = Yolov1(in_channels=3,split_size=S,num_boxes = B,num_classes=C)
    x = torch.randn((2,3,448,448))
    print(model(x).shape)
    this will throw help if got same error like me
    __init__() missing 1 required positional argument: 'kernel_size'

    • @pranavkushare6788
      @pranavkushare6788 3 года назад

      Yeah i'm getting the same error.
      Have you found any solution and reason ?

    • @chinmay996
      @chinmay996 3 года назад

      @@pranavkushare6788 if you still have not solved the problem, check your parameters in CNNBlock inside _create_conv_layers method.

  • @user-dp6th8mu6v
    @user-dp6th8mu6v Год назад

    Thank you so much for this video, it's so helpful! Especially the concept in first 9 minutes. I read a lot of sources, but here it's the only place where it is clearly explauned. And more precisely the part where we are looking for a cell with midpoint of bounding box! Thank you so much for a great Explanation!

  • @vikramsandu6054
    @vikramsandu6054 2 года назад

    Your name is Aladdin but you are a genie to us. Thanks for this video.

  • @Epistemophilos
    @Epistemophilos 2 года назад +4

    Is there a mistake in the network diagram in the paper? Surely the 64 7x7 filters in the first layer result in 64 channels, not 192? What am I missing? If it is a mistake (seems highly unlikely), then the question is if there are really 192 filters, or 64.

    • @chocorramo99
      @chocorramo99 14 дней назад

      64 kernels and there are 3 channels, 192 resulting channels. lol kinda late.

    • @Epistemophilos
      @Epistemophilos 14 дней назад +1

      @@chocorramo99 Linear algebra is timeless! Thanks :D

  • @TheDroidMate
    @TheDroidMate 8 месяцев назад

    Amazing video series, thanks! Extra kudos for the OS you're using 💜

  • @soorkie
    @soorkie 3 года назад +7

    Hi, can you do a similar one with Graph Convolutional Networks? Your videos are very usefull ❤️

  • @jeroenritmeester73
    @jeroenritmeester73 3 года назад +3

    How does the very first layer of the DarkNet with out_channels = 64 produce 192 feature maps? I understand that 3*64 = 192 but I don't really see how that applies.
    Similarly, the second step has a convlution of 3x3x192, but there are 256 feature maps afterwards.

    • @user-ku3yj9ox4l
      @user-ku3yj9ox4l Год назад

      I am also confused about that part. In my understanding it should be 7x7x3 and then 192 total kernels, right?

  • @poojanpanchal3721
    @poojanpanchal3721 3 года назад

    Great Video!! never seen anyone implementing a complete YOLO algorithm from scratch.

  • @ilikeBrothers
    @ilikeBrothers 3 года назад +1

    Просто топчик! Огромное спасибо за столь подробное разъяснение ещё и с кодом.

  • @vishalm2338
    @vishalm2338 3 года назад

    Thanks a ton Aladdin for making this video. I truly loved it. Also, Would like to see Retinanet implementation . It would be really fun to watch too. Kudos to you!!

  • @sumitbali9194
    @sumitbali9194 3 года назад

    Your videos are a great help to data science beginners. Keep up the good work 👍

  • @francomozo6096
    @francomozo6096 3 года назад

    Thank you man!!!! Great video! Gave me a really good understanding on Yolo, will subscribe

  • @haideralishuvo4781
    @haideralishuvo4781 3 года назад

    FInally , Most waited video , Will have a look asap

  • @mahdiamrollahi8456
    @mahdiamrollahi8456 Год назад +1

    Hello. Why the target and prediction are in different shapes?

  • @ignaciofalchini8264
    @ignaciofalchini8264 2 года назад

    you are awesome bro, really nice job, best YOLOv1 video in existence, thanks a lot

  • @jaylenzhang4198
    @jaylenzhang4198 Год назад

    My understanding of this λ_noob-associated loss function is that it is used to penalize false negatives. This λ_noob-associated loss function includes all grid cells that do not contain any objects but have confidence scores larger than 0. Since there will be a lot of these false negatives, the author adds the coefficient λ_noob to lower their ratio in the overall loss function.

  • @1chimaruGin0_0
    @1chimaruGin0_0 3 года назад +2

    Great work as always!
    This video help me a lot to understand my confusion about yolo loss.
    Could you do some video on Anchors and Focal loss?

    • @AladdinPersson
      @AladdinPersson  3 года назад +2

      I'll revisit object detection at some point and try to implement more state of the art architectures and will look into it :)

  • @bradleyadjileye1202
    @bradleyadjileye1202 Год назад

    Absolutely wonderful, thank you very much for such a fantastic job !

  • @jitmanewtyagi565
    @jitmanewtyagi565 3 года назад +1

    Broooooo, thanks for this man.

  • @santoshwaddi6201
    @santoshwaddi6201 3 года назад

    Very nicely explained in detail.... Great work

  • @changliu3367
    @changliu3367 3 года назад

    Awesome video. Pretty helpful! Thanks a lot.

  • @SamtapesGamer
    @SamtapesGamer Год назад

    Amazing!! Thank you very much for all these lessons! It would help me a lot if you could make videos implementing Kalman Filter and DeepSort from scratch, for object tracking

  • @user-dh4qn8dh2i
    @user-dh4qn8dh2i 2 года назад

    That’s totally awesome!

  • @sb-tq3xw
    @sb-tq3xw 3 года назад

    Amazing Work!!

  • @NamNguyen-fn5td
    @NamNguyen-fn5td 2 года назад +1

    Hi. I have question at 1:12:29. Why "x_cell, y_cell = self.S * x - j, self.S * y - i" minus j and i ? What does this mean?

    • @NamNguyen-fn5td
      @NamNguyen-fn5td 2 года назад

      at 50:27 if you not flatten box_predictions and box_target in MSEloss, it is the same result as flatten

  • @mizhou1409
    @mizhou1409 2 года назад

    Great job, very helpful for a new beginner.

  • @horvathbalazs1480
    @horvathbalazs1480 3 года назад +3

    Hi, I really appreciate your work and patience to make this video, however I would like to ask the following: The loss function is created based on the original paper, but the loss for bounding box midpoint coordinates (x,y) are not included because we calculate just the sqrt of width, height of boxes. Am I right?

    • @horvathbalazs1480
      @horvathbalazs1480 3 года назад +3

      Okay, sorry for the silly question. I just noticed that we should not get the squared root of x,y so that's why we skip here:
      box_predictions[..., 2:4] = torch.sign(box_predictions[..., 2:4]) * torch.sqrt(
      torch.abs(box_predictions[..., 2:4] + 1e-6)
      )
      box_targets[..., 2:4] = torch.sqrt(box_targets[..., 2:4])

  • @zachhua7704
    @zachhua7704 2 года назад +3

    Hi Aladdin, thanks for the great tutorial. I got a question at 1:13:09, in the paper, authors say the width and height of each bounding box are relative to the whole image, while you say they are relative to the cell. Is that a mistake?

    • @MARTIN-101
      @MARTIN-101 4 месяца назад +2

      the bounding box which we provide while training by ourselves to the model is the bounding box which is relative to that image (whole image). because we provide a bounding box which depicts the whole object in the original image.
      but yolo also predict a bounding box for each grid(cell). so that particular bounding box is relative to that cell. than loss function calculates the distance between the center of the bounding box that we provide with the predicted bounding box for each grid.
      the idea behind is that to reduce the distance between the predicted bounding box for each cell with the center of original bounding box. in this way the predicted bouding boxes in the grids becomes closer to the object (becomes closer to the center of the original bounding box).

  • @bhavyashah8674
    @bhavyashah8674 2 года назад +1

    Hii @Aladdin Persson. Amazing video. I just have a doubt. While calculating iou for true_label and pred_labels, should we not add the width and height that we clipped when creating true_labels? That is, in case of the example you gave of [0.95, 0.55, 0.5, 1.5], shouldn't we convert 0.95 to 0.95(as the cell we chose is in 0th index along the width) and 0.55 to 1.55(as the cell we chose is in 1st index along the height). This is because we are doing geometric operations like converting x_centre and y_centre to xmin, ymin, xmax and ymax and on not doing the conversion I mentioned, instead of getting the xmin, ymin, xmax and ymax of the bounding box we get some other coordinates instead.
    Also could you please create the same using Tensorflow?

  • @omarhesham7390
    @omarhesham7390 3 месяца назад

    Fantastic Bro

  • @CESM_03
    @CESM_03 2 года назад

    Thank you man, your video help me a lot

  • @nova2577
    @nova2577 3 года назад

    Appreciate your effort!!

  • @PaAGadirajuSanjayVarma
    @PaAGadirajuSanjayVarma 3 года назад

    I am glad I found your channel

  • @josephherrera639
    @josephherrera639 3 года назад +3

    Do you mind showing how to plot the images with their bounding boxes (and how that can be applied to testing on new data)? Also, do all images have a maximum of 2 objects to localize?

  • @shenbin2930
    @shenbin2930 2 года назад +1

    When I use the code, the detection accuracy of the training set is very good, but the detection accuracy of the test set is almost equal to 0, which is obviously overfitting.
    In fact, the original code is to train an overfitting model, but I have modified some of the code. Why is it still overfitting?
    I have made the following modifications:
    nn.Dropout(0) -> nn.Dropout(0.5)
    WEIGHT_DECAY = 0->WEIGHT_DECAY = 2e-4
    This question has bothered me for a long time. I would appreciate it if you could answer it.

    • @FanFanlanguageworld1707
      @FanFanlanguageworld1707 2 года назад

      How many images you trained with?

    • @m4gh3
      @m4gh3 Год назад

      I got the same results, I too am trying to understand what is going on
      Also I can overfit with a way smaller network

  • @patloeber
    @patloeber 3 года назад

    Amazing effort!

  • @alanjohnstone8766
    @alanjohnstone8766 3 года назад +4

    Wonderful! A minor quibble, wand h are proportions of the main image not the cell in the original paper.

  • @qichongxia2110
    @qichongxia2110 6 месяцев назад

    very helpful! thank you !

  • @leochang3915
    @leochang3915 3 года назад

    Thank you , you really help me a lot!

  • @nerdyguy7270
    @nerdyguy7270 2 года назад +2

    Hi, this is awesome and really helpful. I was going through the yolov1 paper and found that the height and the width are relative to the whole image and not to the cell. Is that correct?

  • @Old_SDC
    @Old_SDC 9 месяцев назад

    Will be back, just need a quick break 35:30
    Downloading 59:42

  • @markgazol5404
    @markgazol5404 3 года назад +2

    Very clear and helpful! Thanks for the videos. I've got one question, though, Can you please explain what is the label for the images with no objects? During the training should it be like [0, 0, 0, 0, 0] or smth?

  • @siddhantjain2591
    @siddhantjain2591 3 года назад +2

    Awesome as always!
    Could you do some video on EfficientNets sometime, that would be great !

  • @GursewakSinghDhiman
    @GursewakSinghDhiman 3 года назад

    You are doing an amazing job. Thanks alot

  • @hetalivekariya7415
    @hetalivekariya7415 2 года назад

    Why I did not come across your channel before!!. But anyways I am glad I found your channel. Thank you.

  • @majtales
    @majtales 3 года назад

    @27:05 why flatten again? Isn't it already flattened in the forward method of the class?
    Also, do we really need to flatten? @51:22 The MSELoss documentation says it sums over all dimensions by default. Also how did you work around that division by zero?@1:33:15

  • @Wh1teD
    @Wh1teD 3 года назад +1

    Very informative video and I think I understood the algo but there is one doubt I have: the code you wrote would only work with this specific dataset? If I would want to use a different dataset, would I need to rewrite the bigger part of the code (i. e. the loss function, the training code)?

  • @apunbhagwan4473
    @apunbhagwan4473 3 года назад +1

    He is simply Great

  • @NityaStriker
    @NityaStriker 3 года назад +1

    Hi.
    I’m unable to load the PascalVOC_YOLO dataset within a Colab notebook due to the dataset being private. Is there a way to use the dataset in a Colab notebook without downloading it on my laptop ?

    • @AladdinPersson
      @AladdinPersson  3 года назад

      I'm not sure, I think you need to download it. Isn't there a way to upload the dataset to Colab so you can run it?

    • @NityaStriker
      @NityaStriker 3 года назад

      @@AladdinPersson There is, but my internet connection is not the fastest while having a small data cap which is why I usually use !wget within colab itself. In this case, both the !wget command and Kaggle’s command failed within Colab for the Kaggle file after which I wrote the above comment.
      Later, I copied the code from the get_data file, pasted it onto a cell, added a few lines of code for creating 8examples.csv and 100examples.csv, and ran it for the code to work.

  • @vaibhavsingh1049
    @vaibhavsingh1049 3 года назад +1

    I think there's a mistake in how you rescale the width and height of the bounding box to be greater than 1 because in the paper it stated as follows:
    "We normalize the bounding box
    width and height by the image width and height so that they
    fall between 0 and 1. We parametrize the bounding box x
    and y coordinates to be offsets of a particular grid cell location so they are also bounded between 0 and 1".
    See that all the values for the box lie between 0 and 1, x and y relative to the cell, and w and h relative to the entire image size.
    If I'm wrong please correct me.

    • @user-th9iz8ii9t
      @user-th9iz8ii9t 2 года назад

      I agree with this dude

    • @NamNguyen-fn5td
      @NamNguyen-fn5td 2 года назад

      @@user-th9iz8ii9t I think in this video he does this because Yolo model make image to 7x7x30 . So does he have to do it so that the label fits the image size ?

  • @zukofire6424
    @zukofire6424 Год назад

    Thanks! I don't understand the code regarding the bounding boxes though... Could you do a deep dive into the bounding boxes calculations AND show how to test on a new image?

  • @anierrn6935
    @anierrn6935 3 года назад

    35:35 explanation about square roots for w,h

  • @amartyabhattacharya
    @amartyabhattacharya Год назад

    One question that I have is, How can I get to know the coordinates of the grid cell of which the centers are a part of? Is it like (1,1) of the output prediction gives the prediction for grid cell having two endpoints as (0,0),(64,64) ? (448/7 = 64)

  • @Duli998
    @Duli998 10 месяцев назад

    I think there might be a bug in the code but I'm not entirely sure, I'd hope you could check it.
    1. The original paper defines the predicted width and height to be relative to the whole image. In your code, this is already done as you load the data (you mentioned that annotations are normalized w.r.t. the image size) so why multiply by self.S (number of cells)? Say for instance, given an image of width 600 and the bounding box of width 100 the normalized width of that bounding box is 1/6, given a grid of 7 cells it would ultimately result in your width_cell being = 1/6 * 7 = 7/6. This seems wrong since the width and height should just fall to be 0-1 w.r.t. the image size. I'm wondering if I'm missing something here?
    2. The x_cell, y_cell AND width_cell, height_cell go through a different set of transformations, the mid points are multiplied by number of cells and then the cell number is subtracted, the width and height on the other are just multiplied by number of cells in a grid (which itself seems odd and not as according to the paper). This means that (mid-x, mid-y) AND (width, height) are not in the same space which results in a wrong IoU being computed due to the fact that you can't retrieve top left and bottom right corners of the bounding box accurately. Say, let iou_1 = iou(bbox_1, bbox_2) and iou_2 = iou(bbox_normalized_1, bbox_normalized_2) where bbox_normalized_1 = normalize(bbox_1) and where normalize() is the function that transforms (mid-x, mid-y, width, height) with respect to the grid as you did in "Dataset and Implementation" section. If this was correct then you'd expect the iou_1 == iou_2 but that is not the case. Therefore, in the loss when you compute your IoUs to get true box (from 2 candidate boxes) yours numbers might not be correct (although you probably still get which predicted box is the responsible one correctly).
    3. In your loss you seem to be missing one important bit. The paper states that the confidence (Section 2) is defined as Pr(Object) * IoU_truth_pred. However, you only compute the loss between predicted confidence and true confidence without the 2nd term ( * IoU_truth_pred). I believe that for a toy example this is fine and you still get valid predictions.
    I'd appreciate if you could address the above, I'm just learning Yolo and tried to implement it from the paper and found your example which have been extremely helpful. Cheers!

  • @hichensstark1048
    @hichensstark1048 3 года назад

    i have wathed all if the videos !!!

  • @yantinghuang7491
    @yantinghuang7491 3 года назад +1

    Great video! Will you make "from scratch" series video for Siamese network?

    • @AladdinPersson
      @AladdinPersson  3 года назад

      I'll look into it! Any specific paper?

    • @yantinghuang7491
      @yantinghuang7491 3 года назад

      @@AladdinPersson Thanks Aladdin! This one should be a good reference: Hermans, Alexander, Lucas Beyer, and Bastian Leibe. "In defense of the triplet loss for person re-identification." arXiv preprint arXiv:1703.07737 (2017).

  • @wuke4231
    @wuke4231 9 месяцев назад

    thank you for your video!😘

  • @larafischer420
    @larafischer420 9 месяцев назад +1

    muito boa essa série de vídeos! Vc pode passar as referências q vc usa pra montar esses notes? Tenho dificuldade em encontrar materiais pra estudar

  • @RicardoRodriguez-nn5jw
    @RicardoRodriguez-nn5jw 3 года назад

    Hey man i just found your channel, really good videos. I just saw that you are doing also a tensorflow playlist, are you planning to make maybe a yolo3,4 on tensorflow like this one from pytorch? Maybe common implementations, yolo or mtcnn, pcn?
    Looking forward to it! Greeeeets

  • @DIY_Foodie
    @DIY_Foodie Год назад

    He is real genius

  • @venkateshvaddadi271
    @venkateshvaddadi271 3 года назад

    great job brother
    you are really awesome

  • @nikaize
    @nikaize 4 месяца назад

    masterpiece

  • @sonquoc7840
    @sonquoc7840 3 года назад

    Thanks for this video, I've got one question, in paper yolov1, width and height of bounding box are relative to intire image, and your code here is relative to cell, what is different of 2 kind of implementation ?

  • @R0Ck50LiD-b5z
    @R0Ck50LiD-b5z 2 года назад +1

    Hi, do you have any details on how you prepared the dataset?

  • @user-db8vp2ze8t
    @user-db8vp2ze8t 3 года назад

    Really great tutorial, but why do we do flatten in forward pass of the Yolov1 and also nn.Flatten() in the _create_fcs? Isn't it redundant?

  • @anshulgoyal1095
    @anshulgoyal1095 3 года назад

    Works well on Colab GPU. Just need to change the addresses of file references.

  • @pphuangyi
    @pphuangyi Год назад

    Thanks!

  • @talhayousuf4599
    @talhayousuf4599 3 года назад

    Too much Thanks for this video, I'm anxiously waiting for Yolo v3 . Can you pleaseee.... do such video for that ?

  • @danlan4132
    @danlan4132 2 года назад

    Thank you very much!!!! Excellent video!!!! By the way, do you have any tutorials for oriented bounding box detection?

  • @Fire_1896
    @Fire_1896 3 года назад +1

    Hi! I'm working with a pre-trained Yolo v3 but I lack of the training module. Is there a way to adapt your training code to match the v3? By the way, thanks to your videos I'm having huge advancements on my undergraduate thesis, they're awesome

    • @AladdinPersson
      @AladdinPersson  3 года назад

      I haven't implemented Yolov3, so I'm not entirely sure, there are definitely some changes but I do think the understanding and the fundamental ideas are very similar from reading the yolov3 paper. I think you can start from this Yolov1 implementation and do the necessary adaptations to V3. However I think you should probably take someone elses implementation of Yolov3 if you just wish to use the network and not spend unnecessary time understanding everything from absolute scratch

  • @user-zw8xc3hu4y
    @user-zw8xc3hu4y 2 года назад

    您好,貌似在数据集方面有一定问题,您直接使用resize方法可能会造成图像的失真,我认为在图像中添加灰条的方式更加合理一些

  • @adarshsingh936
    @adarshsingh936 2 года назад +2

    Can someone explain the use of unsqeeze(3) at 43:55