Closed pengpaiSH closed 7 years ago
@pengpaiSH In that case, I think you may need transfer learning. Depending on your dataset, you may apply transfer learning at various stages of the network, or you may retrain the whole CNN from scratch if your dataset is large enough. You can read more about transfer learning from here http://cs231n.github.io/transfer-learning/. Hope this is helpful.
@xslittlegrass Thank you for your feedback. I am ware of transfer learning or finetuning with my own dataset. What I mean is, what changes shall we make in order to train new dataset, i.e. data format organization, network adjusting ...
@pengpaiSH I haven't done any transfer learning with this code, but if your dataset is large enough, I think you can just keep the feature extraction backbone and retrain the regression head (a couple of fc layers at the end). You will need to prepare your data label (the coordinates of the bounding boxes) and change them into the 1X1470 vector. So X for your training data is your image, and Y for the training data is this 1X1470 vector. Then you can train the weights in the regression head while freezing the weights in the feature extraction backbone. I would advise you to look into the Darknet.keras where you can find the implementation details of the training process. Hope this will be helpful.
@xslittlegrass Really thank for your comments~! By the way, will you update the codes for transfer learning parts, i.e. adding the function for organizing the bounding boxes to 1x1470 vector?
@pengpaiSH I will do that when I find time to work on this, but that may talk a while.
@xslittlegrass Looking forward to that day :)
@xslittlegrass Thanks for sharing your codes. It seems that you load the weights provided by YOLO team and constructs a tiny YOLO model with Keras and then predict images with feedforward pass. What if I want to train with my own dataset, i.e. object not included with YOLO training data, iPhone, iPad, etc.