Object Detection with Open Images using Tensorflow
blog.algorithmia.com
blog.algorithmia.com
I recently trained a detector using Nvidia's detectnet and the DIGITS environment really makes it easy from dataset/database creation to model generation and training. The web interface handles all the padding and resizing for you when you import your images, and detectnet does online augmentation during training. It takes data in KITTI format which is just image + textfile with labels. No wrangling in Python needed.
The documentation is pretty terrible though, you have to pore over github issues to fix and modify things, but it does work.
That said, you can train Tensorflow models using DIGITS, so I assume that DIGITS handles the data IO for you:
https://github.com/NVIDIA/DIGITS/blob/master/docs/GettingSta...
It looks like you just define a wrapper around your model so that DIGITS knows how to run it and evaluate the loss, but otherwise your model could be anything.
We’re still growing and iterating the platform rapidly based on customer feedback, feel free to reach out
How does this work in production? I'm especially curious about the stuff that isn't part of the TensorFlow graph like anchor generation and post-processing. Is your service running the graph directly or does it run some Python script that executes the graph?
What that means is that when it comes to inference in a production environment, we only need our Tensorflow python package, as the metagraph is defined in terms that the base Tensorflow package can decypher.
Although as I'm not an author of the object detection API, there is probably a more nuanced answer here.
2. Why would someone run this on Algorithmia instead of their own hosted NC/P2/P3 instance?
3. Have you tried open image with any other DNNs like Shang's implementation of FastMaskRCNN?
2) Scaling is hard, Cross-language Interoperability is hard, And bringing your product to market is hard. Algorithmia solves all of those problems with grace and has a development experience that is second-to-none. Don't take my word for it, compare it against tensorflow-serving other competitor technologies.
3) I haven't yet but I could certainly see an improvement in performance, we did notice a dramatic difference between our SSD and faster-rcnn model as was expected. This was only an intro, but if you create a model that performs better than ours, we'd love to host it on Algorithmia.
On this demo image [0], why isn't "text" found as well since there is clearly text in the image. Is it because "text" isn't considered an object? If so, what would it take (based on your article) to also train for text?
Thanks!
"Looking at our deduplication function, it’s functional and performant, but not very descriptive. Essentially it checks a running set called seen, which is checked for originality as the deduplication script progresses. As python Dicts are essentially a hash map, the in check compares element hashes instead of each individual component of the dictionary object. This massively speeding up the deduplication process."
Uhm..I don't think so.
It is just extra work to check if the objects are already in the set vs just stuffing them all in and let the set handle uniqueness.
Am I missing something?
https://gist.github.com/pstoll/ae73582763540051d321a4eb15304...
Again, a minor thing. But seeing something like that makes my 'what else do I need to review' detectors go up.