How to train a custom Object detector from scratch in tensorflow.js?

蹲街弑〆低调 提交于 2019-12-24 06:11:30

问题


I followed multiple example, to train a custom object detector in TensorflowJS . The main problem I am facing every where it is using pretrained model.

Pretrained models are fine for general use cases, but custom scenario it fails. For example, take this this is example form official Tensorflowjs examples, here it is using mobilenet, and mobilenet and mobilenet has image size restriction 224x224 which defeats all the purpose, because my images are big and also not of same ratio so resizing is not an option.

I have tried multiple example, all follows same path oneway or another.

What I want ? Any example by which I can train a custom objector from scratch in Tensorflow.js.

Although the answer sounds simple but trust me I searching for this for multiple days. Any help will be greatly appreciated. Thanks


回答1:


Currently it is not yet possible to use tensorflow object detection api in nodejs. But the image size should not be a restriction. Instead of resizing, you can crop your image and keep only the part that contain your object to be detected.

One approach will be like partition the image in 224x224 and run for all partitions but what if the object is between two partitions

The image does not need to be partitioned for it. When labelling the image, you will need to know the x, y coordinates (from the top left) and the w, h of the detected box. You only need to crop a part of the image that will contain the box. Cropping at the coordinates x - (224-w)/2, y- (224-h)/2 can be a good start. There are two issues with these coordinates:

  • the detected boxes will always be in the center, so the training will be biaised. To prevent it, a randomn factor can be used. x - (224-w)/r , y- (224-h)/r where r can be randomly taken from [1-10] for instance

  • if the detected boxes are bigger than 224 * 224 maybe you might first choose to resize the video keeping it ratio before cropping. In this case the boxe size (w, h) will need to be readjusted according to the scale used for the resizing



来源:https://stackoverflow.com/questions/59322382/how-to-train-a-custom-object-detector-from-scratch-in-tensorflow-js

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!