Persistent Evidence of Local Image Properties in Generic ConvNets

Persistent Evidence of Local Image Properties in Generic ConvNets

Ali Sharif Razavian CVAP, KTH (Royal Institute of Technology), Stockholm, SE-10044
Hossein Azizpour CVAP, KTH (Royal Institute of Technology), Stockholm, SE-10044

Atsuto Maki
CVAP, KTH (Royal Institute of Technology), Stockholm, SE-10044
Josephine Sullivan CVAP, KTH (Royal Institute of Technology), Stockholm, SE-10044
Carl Henrik Ek CVAP, KTH (Royal Institute of Technology), Stockholm, SE-10044
Stefan Carlsson CVAP, KTH (Royal Institute of Technology), Stockholm, SE-10044

Supervised training of a convolutional network for object classification should make explicit any information related to the class of objects and disregard any auxiliary information associated with the capture of the image or the variation within the object class. Does this happen in practice? Although this seems to pertain to the very final layers in the network, if we look at earlier layers we find that this is not the case. Surprisingly, strong spatial information is implicit. This paper addresses this, in particular, exploiting the image representation at the first fully connected layer, i.e. the global image descriptor which has been recently shown to be most effective in a range of visual recognition tasks. We empirically demonstrate evidences for the finding in the contexts of four different tasks: 2d landmark detection, 2d object keypoints prediction, estimation of the RGB values of input image, and recovery of semantic label of each pixel. We base our investigation on a simple framework with ridge rigression commonly across these tasks, and show results which all support our insight. Such spatial information can be used for computing correspondence of landmarks to a good accuracy, but should potentially be useful for improving the training of the convolutional nets for classification purposes.



1 Introduction

Figure 1: How many different local image properties can be predicted from a generic ConvNet representation using a linear model? In this figure, given the ConvNet representation of an image, we have estimated three different local properties. Namely, semantic segmentation for background (top left) and 20 object classes (bottom left) present in PASCAL VOC dataset, 194 facial landmarks (top right) and RGB reconstruction of the original image (bottom right). One can see that a generic ConvNet representation optimized for ImageNet semantic classification has embedded high level of local information.

There is at least one alchemy associated with deep ConvNets. It occurs when 100,000 iterations of SGD, in tandem with 1 million labelled training images from ImageNet, transform the 60 million randomly initialized weights of a deep ConvNet into the best, by a huge margin, performing known visual image classifier [13, 10, 17, 19, 7, 20]. Alongside this high-level alchemy is another related one w.r.t. the image representations learnt by the fully connected layers of a deep ConvNet [10, 17, 7, 20]. These representations are explicitly trained to retain information relevant to semantic classes. But we show in this paper a striking fact, through various tasks, that these representations also retain spatial information, including the location of object parts and keypoints of object.

The notion of predicting spatial information using a ConvNet itself is not new. Recent studies have introduced several approaches to extract spatial information from an image with deep ConvNet. Some have trained a specialized ConvNet to predict specific spatial information such as body parts and facial landmarks [24, 21, 8]. Others [19, 9, 15] have shown that it is possible to extract spatial correspondences using a generic ConvNet representation. But they consider representations from the ConvNet layers that only describe sub-patches of the whole image. Then in a similar manner to a sliding window approach they have an exhaustive spatial search, in tandem with their patch descriptor, to find the locations.

Unlike those works, we show that a global image representation extracted from the first fully connected layer of a generic ConvNet (i.e. trained for predicting the semantic classes of ImageNet) is capable of predicting spatial information without doing an explicit search. In particular, we show that one can learn a linear regression function (with results ranging from promising to good) from the representation to spatial properties: 2d facial landmarks, 2d object keypoints, RGB values and class labels of individual pixels, see figure 1. We chose these experiments to highlight the network’s ability to reliably extract spatial information.

Why do we concentrate on the fully connected layers? Prior work has shown that these layers correspond to the most generic and compact image representation and produce the best results, when combined with a simple linear classifier, in a range of visual recognition tasks [2]. Therefore the starting point of this work was to examine what other information, besides visual semantic information, is encoded and easily accessible from these representations.

The results we achieve for the tasks we tackle indicate that the spatial information is implicitly encoded in the ConvNet representation we consider. Remember, the network has not been explicitly encouraged to learn spatial information during the training.

The contributions of the paper are:

  • For the first time we systematically demonstrate that spatial information is persistently transferred to the representation in the first fully connected layer of a generic ConvNet (section 3).

  • We show that one can learn a linear regression function from the ConvNet representation to both object parts and local image properties. In particular, we demonstrate that it is possible to estimate 2d facial landmarks (section 3.1.1), 2d object keypoints (section 3.1.2), RGB values (section 3.1.3) and pixel level segmentations (section 3.1.4).

  • By using a simple look-back method we achieved accurate predictions of facial landmarks on a par with state of the art (section 3.1.1).

  • We qualitatively show examples where semantically meaningful directions in the ConvNet representation space can be learned and exploited to accordingly alter the appearance of a face (section 4).

Before describing our experiments and results in the next section we explain why spatial information can be ever retained and so easily accessed in the first fully-connected layer of a generic ConvNet.

2 Flow of information through a ConvNet

A generic ConvNet representation extracted from the first fully-connected layer is explicitly trained to retain information relevant to semantic class. The semantic classes in the training data are independent of spatial information and therefore this information, as it is deemed unnecessary to perform the task, should be removed or at least structured in such a manner that it does not conflict with the task.

The weights of a ConvNet’s convolutional layers encode a very large number of compositional patterns of appearance that occur in the training images. Thus, the multiple response maps output by a convolutional layer indicate which appearance patterns occur in different sub-patches (a.k.a. receptive fields) of a fixed size in the original image. The size of these sub-patches increases as we progress through the convolutional layers. When we come to the first fully-connected layer the network must compress the set of response maps (1313256 numbers assuming an AlexNet ConvNet) produced by the final convolutional layer into a mere 4096 numbers. The compression performed seeks to optimize the ability of the network’s classification layer (with potentially some more intermediary fully-connected layers) to produce semantic labels as defined by the ImageNet classification task.

The weights of the first fully connected layer are, in general, not particularly sparse. Therefore the what and where explicitly encoded in the convolutional layers are aggregated, merged and conflated into the output nodes of this first fully connected layer. At this stage it is impossible to backtrack from these responses to spatial locations in the image. Nevertheless, we show it is possible to predict from this global image descriptor, using linear regressors, the spatial locations of object parts and keypoints and also pixel level descriptors such as colour and semantic class.

3 Experiment

We study two families of tasks to explore which spatial information resides in the ConvNet representation:

  • Estimate the coordinate of an item in an image.

  • Estimate the local property of an image at .

Given the ConvNet representation of an image for the first task, we {enumerate*}[label=)]

estimate the coordinates of facial landmarks in three challenging datasets [14, 3, 18], and

predict the positions of object keypoints. We use the annotations [4] from the Pascal VOC 2011 dataset as our testbed. While for the second task, given a ConvNet representation, we {enumerate*}[label=)]

predict the RGB values of every pixel in the original image (we use the ImageNet validation set as our test set), and

predict the semantic segmentation of each pixel in the original image (VOC 2012 Pascal dataset).

3.1 Experimental setup

In all our experiments we use the same ConvNet. It has the AlexNet architecture [13] and is trained on ImageNet [1] using the reference implementation provided by Caffe [11]. Our image representation then corresponds to the responses of the first fully connected layer of this network because of its compactness and ability to solve a wide range of recognition tasks [10, 17, 7, 20, 2]. We will denote this representation by . Then the only post-processing we perform on is to normalize it.

For every scalar quantity we predict from , we do so with a linear regression model:


We use a ridge regularised linear model because of its simplicity and for the following reason. All the class, pose and semantic information does exist in the original RGB image, as the human vision proves, but it is not easily accessible and especially not through linear models. However, we want to study if all this information is still encoded in the ConvNet representation, but in a much more accessible way and this is demonstrated by the use of a linear model compared to a much more capable prediction algorithm.

Helen [14] LFPW [3] IBUG [18]
Dataset Bias 0.501 0.242 0.352
RGB + ridge 0.096 0.074 0.160
STASM [16] 0.111 - -
CompASM [14] 0.091 - -
ConvNet + ridge 0.065 0.056 0.096
RCPR [5] 0.065 0.035 -
SDM [22] 0.059 0.035 0.075
ESR [6] 0.059 0.034 0.075
ETR [12] 0.049 0.038 0.064
ConvNet + look-back 0.058 0.049 0.074
Table 1: Evaluation of facial landmark estimation on three standard face datasets and comparison with baslines and recent state of the art methods. The error measure is the average distance between the predicted location of a landmark and its ground truth location. Each error distance is normalized by the inter-occular distance.

There are, of course, numerous ways we can estimate the coefficients from labelled training. Assume that we have labelled training data where each and (). The optimal values for are then found solving this optimization problem


The closed form solution to this optimization problem is easily shown to be:




and it is assumed the columns of have been centred. In all our experiments we set the regularization parameter with four-fold cross-validation.

Figure 2: The normalized prediction error for different subsets of the landmarks after look-back (see the caption of table 1 for the error measure). The error is shown for three different face datasets. Since the bounding box around the chin is bigger than the bounding box around the other parts, the error for chin is higher than the rest of facial landmarks.
Figure 3: The landmarks predicted by our linear regressors for eight different images from the Helen Dataset. The leftmost image in each triplet shows the ground truth. The middle image shows the landmarks predicted by the linear regression functions from the ConvNet representation of the whole image to landmark coordinates. In the middle image the bounding boxes, defined by the initial predictions for the landmarks, used by look-back method are also shown. The rightmost image shows the final landmark predictions made by the look-back method.

3.1.1 Facial Landmarks

The first problem we address is the popular task of 2d facial landmark detection. Facial landmark detection is interesting since a large body of work has been applied to it. To train our landmark estimation model, for each landmark we estimate two separate linear regression functions, one for the -coordinate of the landmark and one for the -coordinate. Therefore we estimate the coordinates of all the landmarks from the image’s ConvNet representation, , with


where and . Remember each row of is learnt independently via the ridge regression solution of equation (3). For the rest of the tasks explored in this section we use a similar formulation to the one just described so we will not introduce new notation to describe them.

Table 1 details the average errors, of our approaches and other methods, in the predicted location of the landmarks on three standard datasets: Helen [14], LFPW [3] and IBUG [18]. The reported errors are normalized by the distance between two eyes in the image according to the standard practice in the field [12]. The table reports the performance of both the baseline predictors of linear ridge regression from RGB and a random predictor and recent high performing systems [5, 22, 12, 6] which generally involve learning a complicated non-linear function from RGB to the landmarks. Our predictor, ConvNet+ridge, produces a significantly better estimate than the baselines and its performance is comparable with state-of-the-art methods specifically designed to solve this problem. Our result indicates that the locations of landmarks can be reliablly extracted from the ConvNet representation.

airplane bike bird boat bottle bus car cat chair cow table dog horse motorbike person plant sheep sofa train tv mean
SIFT 17.9 16.5 15.3 15.6 25.7 21.7 22.0 12.6 11.3 7.6 6.5 12.5 18.3 15.1 15.9 21.3 14.7 15.1 9.2 19.9 15.7
SIFT+prior 33.5 36.9 22.7 23.1 44.0 42.6 39.3 22.1 18.5 23.5 11.2 20.6 32.2 33.9 26.7 30.6 25.7 26.5 21.9 32.4 28.4
ConvNet + ridge 21.3 25.1 22.7 16.4 47.3 27.2 29.9 25.4 19.7 26.3 22.0 27.1 25.5 21.8 33.8 41.0 28.2 23.0 23.9 47.3 27.8
Conv5 + sliding window [15] 38.5 37.6 29.6 25.3 54.5 52.1 28.6 31.5 8.9 30.5 24.1 23.7 35.8 29.9 39.3 38.2 30.5 24.5 41.5 42.0 33.3
Table 2: Quantitative evaluation of our keypoint estimation for general objects on VOC11. The performance measure is the average PCK score with .

ConvNet+ridge inherently loses around 10 pixel accuracy due to the pooling and strides in the first and second convolutional layers of the ConvNet. However, we can overcome this limitation in a simple manner which we term the look-back trick. We partition the landmarks into different subsets (such as chin, left eye and left eyebrow, right eye and right eyebrow, and then mouth and nose), figure 3 shows some examples. We let the predicted position of each set of landmarks, using equation 5, define a square bounding box containing them with some margin based on the maximum prediction error for the landmarks in the training set. We then extract the ConvNet representation for this sub-image and use linear regression, as before, to estimate the coordinates of the landmarks in the bounding-box. This simple trick significantly boosts the accuracy of the predictions, and allows us to outperform all the s.o.a. methods except for the recent work of [12]. The more sets we have in the partition the better results we get. We used six sets for each dataset. See figure 3 for qualitative examples of the result of this method on sample images from the Helen dataset. Figure 2 also shows the prediction errors for different parts after look-up for three face datasets.

3.1.2 Object Keypoints

In our next task we predict the location of object keypoints. These keypoints exhibit more variation in their spatial location than facial landmarks. We use the keypoint annotations provided by [4] for 20 classes of PASCAL VOC 2011. We make our predictions using exactly the same basic approach as for facial landmarks. The classes of PASCAL task include many deformable objects (dog, cat, human, etc.) and objects which have high intra-class variation (bottle, plant, etc.) which makes the problem of key point detection extremely difficult. In order to model these keypoints a separate set of regressors is learnt for each object.

Figure 4: PCK evaluation for keypoint prediction of 20 classes of PASCAL VOC 2011.
Figure 5: RGB information linearly predicted from the ConvNet representation. For each pixel we train 3 independent linear regressors to predict the pixel’s RGB value from the image’s global ConvNet representation. We used the first 49K images from ImageNet’s cross validation set for training and visualized the result for the last 1k images. Shown above are the results for 25 random images (left) taken from the test set and their reconstructions (right).

Table 2 reports the accuracy of our results for keypoint prediction, together with those achieved by other methods [15]. The accuracy is measured using mean PCK [23]. A keypoint is considered to be correctly estimated if the prediction’s Euclidean distance from the ground truth position is times the maximum of the bounding box width and height. Our simple approach outperforms SIFT by a huge margin on localizing landmarks and is only slightly below the performance of SIFT+prior [15]. Figure 4 shows the plot of PCK vs for 20 classes.

3.1.3 RGB reconstruction

The results from the previous tasks show that our ConvNet representation does encode some levels of spatial information. The natural question is then what does it actually remove? To investigate this we try to evaluate if it is possible to invert the ConvNet mapping. First, we try to estimate the RGB values of the original input image from our ConvNet representation. For this, again, we simply learn linear regressors where is the number of pixels in the image. In other words we learn an independent regressor for each pixel and each colour channel.

We use ImageNet as our testbed. We used the first 49k images from ImageNet’s validation set for training and the last 1k images for testing. We resized each image to 46463 and trained 6348 independent linear regressors. Some examples of the resulting RGB reconstruction are illustrated in figure 5. The mean absolute error of image reconstruction is 0.12. It is rather surprising that RGB values of an image can be extracted with this degree of accuracy from the ConvNet representation.

3.1.4 Semantic Segmentation

background airplane bike bird boat bottle bus car cat chair cow table dog horse mbike person plant sheep sofa train tv mean
ConvNet 79.12 16.01 0.02 12.93 9.26 13.69 37.29 33.75 40.01 0.01 8.62 12.24 30.89 9.43 24.94 44.03 6.22 18.77 1.64 25.33 11.05 20.73
Table 3: Evaluation of Semantic Segmentation on the validation set of VOC12 measured in mean Average Precision (mAP).
Figure 6: Semantic segmentation results for images from PASCAL VOC. For each block of pictures, the top left hand picture is the original image and the one directly to its right is the probability map for the background class. The brighter the pixel the higher the probability. The bottom set of smaller images in the block display, in the same manner, the probabilities for the 20 classes of PASCAL VOC 2011. The probability masks are computed independently of one another though the scaling of the intensities in the displayed masks is consistent across all the masks. The learning is based on linear regression, the details of which are found in the main text.

We applied the same framework which we employed for RGB reconstruction further to recover semantic labels of each pixel instead of its RGB values. The procedure is as follows: we resized each semantic segmentation map of VOC 2012 segmentation task down to a 303021 image. We train a separate linear regressor to predict whether the pixel at position belongs to class or not encoded as 1 and 0. We have and similarly for and . Therefore a total of 18900 linear regressors are trained with ridge regression. Solving a classification problem via regression is not ideal. But the qualitative results shown in figure 6 are visually pleasing. They show the semantic segmentations produced by our approach for some images from the VOC12 validation set.

After we apply the linear regressor for each class to each pixel, we get 21 responses. We then turn these responses into a single prediction using another linear model. We multiply the response vector by a matrix and then choose the class which corresponds to the highest response in the output vector. Ideally should model the relations between different class responses at a single pixel. We learn , once again with ridge regression, and during training it tries to return a binary vector of length 21 with only one non-zero entry.

As our segmentation masks only have size 3030 we resize the them back to their original size. We used the VOC12 training-set as the training data and augmented this set tenfold to get a better estimate and reported the result on the cross-validation set. Quantitative results for our segmentations are given in table 3. Although this result itself is not as good as s.o.a. on semantic segmentation task (mean average precision of 20.7 compared to 47.5 of s.o.a. method), it is intriguing to see that the global ConvNet representation contains this level of information. It is easy to envisage that such a segmentation could be incorporated into an object classifier or detector.

male female
no glasses glasses
right in-plane rotation left in-plane rotation
head down head up
Figure 7: Semantically altering a face using its generic ConvNet representation and semantically meaningful directions in the representation space. Given an image of a face and its ConvNet representation each row above shows the effect of altering the face’s representation by moving in one direction of the representation space and then regressing from the resulting ConvNet representation back to its RGB representation. Each direction was learned from labeled training data and corresponds to a specific semantic concept: gender, glasses/no-glasses, head angle and head tilt. For gender we can see that the left-most image which corresponds to male has dark patches corresponding to a beard while the right-most image is clearly female. The glasses/no-glasses clearly alters the region around the eyes. The last two rows show variations caused by changes in head pose. Both the head angle and the tilt (last row) are clearly visible.

4 Semantic directions in representation space

The ConvNet is trained with one objective in mind, to learn a representation where every pair of classes is linearly separable. The representation space is thus carved into different volumes corresponding to the different classes. The results of the paper so far show each class volume retains significant intra-class variations. In this section we make a first step towards understanding how these variations are structured. To proceed we learn a separate linear regressor from the representation to each of the following variates for the LFW data-set gender, have-glasses, and pose. Each linear regressor specifies a direction in the representation space along which a semantic concept varies.

What happens with the images if we alter the representation along this direction? Can we change the gender or add glasses or continuously change the pose of the face in the image? We can achieve this if we extrapolate along an identified direction and then regress back to the RGB image as described in section 3.1.3. In more detail: the ConvNet representation, , of a face can be written in terms of its projection onto a semantic direction, such as gender , found via linear regression and its component orthogonal to


Then we can create a new ConvNet representation where the gender attribute of the face has been altered but not the other factors in the following simplistic manner.


with . We then regress from back to the RGB image to visualize the result of the alteration, see figure 7 for some sample results.

What do the results of our small scale experiment convey? We can see that altering the pose direction in the representation does correspond well to the actual image transformation and that changing the gender corresponds to an altering of the face’s color composition. Similarly glasses/no-glasses alters the appearance of the region around the eyes. However, it is easy to read too much into the experiments as it is severely limited by the linear structure of the regressors. And the fear of hallucinating experimental evidence for the elephant in the room - the concept of disentanglement - means we will leave our speculations to these comments. However, as such a simple approach is capable of finding some structures it would be interesting to investigate if the representation factorizes the variations according to semantic factors.

5 Conclusion

In this paper we have shown that a generic ConvNet representation from the first fully connected layer retains significant spatial information. We demonstrated this fact by solving four different tasks, that require local spatial information, using the simple common framework of linear regression from our ConvNet representation. These tasks are {enumerate*}[label=)]

2d facial landmark prediction,

2d object keypoints prediction,

estimation of the RGB values of the original input image, and

semantic segmentation, i.e. recovering the semantic label of each pixel. The results demonstrated throughout all these tasks, using diverse datasets, show spatial information is implicitly encoded in the ConvNet representation and can be easily accessed. This result is surprising because the employed network was not explicitly trained to keep spatial information and also the first fully connected layer is a global image descriptor which aggregates and conflates appearance features, extracted from the convolutional layers, from all spatial locations in the image.


We would like to gratefully acknowledge the support of NVIDIA for the donation of multiple GPU cards for this research.


  • [1] Imagenet large scale visual recognition challenge 2013.
  • [2] H. Azizpour, A. Sharif Razavian, J. Sullivan, A. Maki, and S. Carlsson. From generic to specific deep representations for visual recognition. arXiv:1406.5774 [cs.CV], 2014.
  • [3] P. N. Belhumeur, D. W. Jacobs, D. J. Kriegman, and N. Kumar. Localizing parts of faces using a consensus of exemplars. In CVPR, pages 545–552, 2011.
  • [4] L. Bourdev and J. Malik. Poselets: Body part detectors trained using 3d human pose annotations. In ICCV, 2009.
  • [5] X. P. Burgos-Artizzu, P. Perona, and P. Dollár. Robust face landmark estimation under occlusion. In ICCV, 2013.
  • [6] X. Cao, Y. Wei, F. Wen, and J. Sun. Face alignment by explicit shape regression. In CVPR, pages 2887–2894, 2012.
  • [7] J. Donahue, Y. Jia, O. Vinyals, J. Hoffman, N. Zhang, E. Tzeng, and T. Darrell. Decaf: A deep convolutional activation feature for generic visual recognition. In ICML, 2014.
  • [8] D. Eigen, C. Puhrsch, and R. Fergus. Depth map prediction from a single image using a multi-scale deep network. In NIPS, 2014.
  • [9] P. Fischer, A. Dosovitskiy, and T. Brox. Descriptor matching with convolutional neural networks: a comparison to sift. arXiv:1405.5769v1 [cs.CV], 2014.
  • [10] R. B. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
  • [11] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. B. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. 2014.
  • [12] V. Kazemi and J. Sullivan. One millisecond face alignment with an ensemble of regression trees. In CVPR, pages 1867–1874, 2014.
  • [13] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.
  • [14] V. Le, J. Brandt, Z. Lin, L. D. Bourdev, and T. S. Huang. Interactive facial feature localization. In ECCV, pages 679–692, 2012.
  • [15] J. Long, N. Zhang, and T. Darrell. Do convnets learn correspondence? arXiv:1411.1091 [cs.CV], 2014.
  • [16] S. Milborrow and F. Nicolls. Locating facial features with an extended active shape model. In ECCV, pages 504–513, 2008.
  • [17] M. Oquab, L. Bottou, I. Laptev, and J. Sivic. Learning and transferring mid-level image representations using convolutional neural networks. In CVPR, 2014.
  • [18] C. Sagonas, G. Tzimiropoulos, S. Zafeiriou, and M. Pantic. A semi-automatic methodology for facial landmark annotation. In CVPR Workshops, pages 896–903, 2013.
  • [19] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014.
  • [20] A. Sharif Razavian, H. Azizpour, J. Sullivan, and S. Carlsson. CNN features off-the-shelf: An astounding baseline for visual recognition. In CVPR workshop of DeepVision, 2014.
  • [21] A. Toshev and C. Szegedy. Deeppose: Human pose estimation via deep neural networks. In CVPR, 2014.
  • [22] X. Xiong and F. De la Torre. Supervised descent method and its applications to face alignment. In CVPR, 2013.
  • [23] Y. Yang and D. Ramanan. Articulated human detection with flexible mixtures of parts. PAMI, 35(12):2878–2890, 2013.
  • [24] N. Zhang, M. Paluri, M. Ranzato, T. Darrell, and L. Bourdev. Panda: Pose aligned networks for deep attribute modeling. In CVPR, 2014.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
Add comment
Loading ...
This is a comment super asjknd jkasnjk adsnkj
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test description