22

In the paper Batch Normalization,Sergey et al,2015. proposed Inception-v1 architecture which is a variant of the GoogleNet in the paper Going deeper with convolutions, and in the meanwhile they introduced Batch Normalization to Inception(BN-Inception). The main difference to the network described in (Szegedy et al.,2014) is that the 5x5 convolutional ...


22

Object Detection : is the technology that is related to computer vision and image processing. It's aim? detect objects in an image. Semantic Segmentation : is a technique that detects , for each pixel , the object category it belongs to , all object categories ( labels ) must be known to the model. Instance Segmentation : same as Semantic Segmentation, but ...


21

To answer your questions: Yes your approach is right Of A, B and C the right answer is B. The explanation is the following: In order to calculate Mean Average Precision (mAP) in the context of Object Detection you must compute the Average Precision (AP) for each class, and then compute the mean across all classes. The key here is to compute the AP for each ...


20

The convolution operation, simply put, is combination of element-wise product of two matrices. So long as these two matrices agree in dimensions, there shouldn't be a problem, and so I can understand the motivation behind your query. A.1. However, the intent of convolution is to encode source data matrix (entire image) in terms of a filter or kernel. More ...


17

Actually it's $49C*C$, the first $C$ is the number of input channels, and the second $C$ is the number of filters. Quote from CS231n: To summarize, the Conv Layer: Accepts a volume of size $W_1 \times H_1 \times D_1$ Requires four hyperparameters: Number of filters $K$, their spatial extent $F$, the stride $S$, the amount of zero ...


15

mAP@[.5:.95](someone denoted mAP@[.5,.95]) means average mAP over different IoU thresholds, from 0.5 to 0.95, step 0.05 (0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95). There is an associated MS COCO challenge with a new evaluation metric, that averages mAP over different IoU thresholds, from 0.5 to 0.95 (written as “0.5:0.95”). [Ref] We evaluate ...


14

There is a nice and detailed explanation with an easy to use code on my Github. Certainly it will help you guys.


9

Yes, you can use the same optimizers you are familiar with for CNNs. I don't think that there is a best optimizer for CNNs. The most popular in my opinion is Adam. However some people like to use a plain SGD optimizer with custom parameters. An excellent article explaining the differences between most popular gradient descent based optimizers can be found ...


8

I do something similar with keras and GPU training, where i also have only a small memory amount available. The idea would be split the numpy files into smaller ones, let's say 64 samples per file and then load each file and call train_on_batch on those images. You can use keras' train_on_batch function to achieve this: train_on_batch train_on_batch(self, ...


8

A CNN could be a good choice for this task if you expect variation in the original image scale, rotation lighting etc, and also have a lot of training data. The usual CNN architecture is to have convolutional layers close to the input, and fully-connected layers in the output. Those fully-connected layers can have the output arranged for different ...


8

there are multiple issues with the code: You force the values in the image to be uint8 (8-bit integer). Since the values are floats they will be casted/rounded to either 0 or 1. This will later be interpreted as image in black and the darkest form of gray (1 out of 255). Once you have proper floats as values PIL or pillow can't handle the array (they only ...


8

In sort of mechanistic/pictorial/image-based terms: Dilation: ### SEE COMMENTS, WORKING ON CORRECTING THIS SECTION Dilation is largely the same as run-of-the-mill convolution (frankly so is deconvolution), except that it introduces gaps into it's kernels, i.e. whereas a standard kernel would typically slide over contiguous sections of the input, it's dilated ...


8

Of course, it matters. Which one is best completely depends on your problem. The golden rule for machine learning problems is that you want the data you train on to be as representative as the data the model will encounter once live. Typically, faces cropped dataset will be an easier problem because the CNN can directly focus on the face, but if your use ...


7

In your convnet code, you compute the cross entropy manually: cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y_conv), reduction_indices=[1])) train_step = tf.train.AdamOptimizer(1e-5).minimize(cross_entropy) If you do that, you may run into numerical stability issues. Instead, you should use tf.nn.softmax_cross_entropy_with_logits() If using ...


7

Though both seem to be doing the same thing, which is up-sampling a layer, there's a clear margin between them. First we talk about Dilated Convolution I found this nice blog on above topic. So as I understood, this is more like exploring the input data points in a wide manner. Or increasing the receptive field of the convolution operation. Here is a ...


7

"Hand Crafted" features refer to properties derived using various algorithms using the information present in the image itself. For example, two simple features that can be extracted from images are edges and corners. A basic edge detector algorithm works by finding areas where the image intensity "suddenly" changes. To understand that we need to remember ...


7

We first center our data by subtracting the mean of the batch. We also divide by the standard deviation, so our formula becomes: $ z = \frac{x - \mu}{\sigma} $ where: $ x $ is the pixel value $ \mu $ is the arithmetic mean of the channel distribution $ \sigma $ is the standard deviation of the channel, calculated as such: $ \sigma = \sqrt{\frac{\sum^...


7

Yes, there have been many attempts, but perhaps the most noteable one is the approach described in the paper of Andrej Karpathy and Li Fei-Fei where they connect a CNN and RNN in series (CNN over image region + bidirectional RNN + Multimodal RNN) and use this for labeling a scene with a whole sentence. Though, this one is more than just object detection as ...


7

I will outline some points about the libraries and point you to some good comparisons that I have read. The GitHub star counts are just another reference point to help compare popularity. While I don't condone simply following the masses, those stars do help you see what a lot of other people think about the frameworks. Tensorflow is very well documented ...


7

I quote the answers from What is a bilinear tensor layer (in contrast to a standard linear neural network layer) or how can I imagine it?. A bilinear function is a function of two inputs $x$ and $y$ that is linear in each input separately. Simple bilinear functions on vectors are the dot product or the element-wise product. Let $M$ be a matrix. The function $...


7

I recommend several checks to make sure you get reasonable mAP@IoU scores for object detection API: Try varying the Intersection over Union (IoU) threshold, e.g 0.2-0.5 and see if you get an increase in average precision. You would have to modify matching_iou_threshold parameter in object_detection/utils/object_detection_evaluation.py Try different ...


7

Here is an animation of fractionally-strided convolution (from this github project): where the dashed white cells are zero rows/columns padded between the input cells (blue). These animations are visualizations of the mathematical formulas from the article below: A guide to convolution arithmetic for deep learning Here is a quote from the article: ...


7

The simplest pipeline would be to do the following: OCR Named Entity Extraction Entity Disambiguation OCR This is basically transforming your receipts into plain text. If you have scans (pictures) of the receipts, then you need a method that can deal with images. For example, you could use tesseract. Named Entity Extraction This is detecting the parts ...


6

It means that the number of filters (a.k.a. kernels, or feature detector) in the previous convolutional layer is 96. You may want to watch the video of the lecture, and in particular this slide, which mentions that a filter is applied to the full depth of your previous layer:


6

You already have the answer from Icyblade. However, I want to point out that your Average Precision formula is wrong. The formula $\frac{\#TP(c)}{\#TP(c) + \#FP(c)}$ is the definition of precision, not Average Precision. For object detection, AP is defined in here. Briefly, it summarises the precision/recall curve hence not only precision but also recall is ...


6

The short answer is that when a net is very deep it becomes very difficult for gradients to propagate backwards all the way. Skip connections offer "short cuts" for gradients to propagate further and allow for efficient training of very deep nets.


6

Fine tuning means changing the weights such that the VGGNet can perform the task you want in your dataset. The reason why fine-tuning is not called training (which is what you are doing) is because it implies that you already use a network that has been trained on a dataset. However, the concept is the same as training, but you just happen to it do with a ...


6

You essentially need a multi-input model. This can only be done through keras' functional api and can work with the pretrained nets in keras.applications. To create one you can do this: from keras.layers import Input, Conv2D, Dense, concatenate from keras.models import Model 1) Define your first model: in1 = Input(...) # input of the first model x = ...


6

Generally, if you look at image segmentation models, they have two main paths, what the author of your paper calls encoder and decoder paths. The role of the encoder is to contract the size of the image while extracting meaningful information, while the decoder restores the contracted image to its original dimensions. However, a lot of information is lost ...


5

The objective function they use to train the CNN minimizes the squared L2 distance (i.e. the squared Euclidean distance) between two similar (positive) images and simultaneously maximizes the distance between two different (negative) images. That means, the (squared) Euclidean distance between two representations is a measure of their similarity. Then, ...


Only top voted, non community-wiki answers of a minimum length are eligible